2026-06-30 13:20:41 -03:00
|
|
|
using SeaHaven.Services.Helpers;
|
|
|
|
|
|
|
|
|
|
namespace SeaHavenIndustries.Tests;
|
|
|
|
|
|
|
|
|
|
public class WorkOrderNumberNormalizerTests
|
|
|
|
|
{
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TryNormalize_PadsToElevenDigits()
|
|
|
|
|
{
|
|
|
|
|
var ok = WorkOrderNumberNormalizer.TryNormalize("12345", out var normalized, out var error);
|
|
|
|
|
|
|
|
|
|
Assert.True(ok);
|
|
|
|
|
Assert.Null(error);
|
|
|
|
|
Assert.Equal("00000012345", normalized);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TryNormalize_AcceptsElevenDigits()
|
|
|
|
|
{
|
|
|
|
|
var ok = WorkOrderNumberNormalizer.TryNormalize("10000000001", out var normalized, out _);
|
|
|
|
|
|
|
|
|
|
Assert.True(ok);
|
|
|
|
|
Assert.Equal("10000000001", normalized);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TryNormalize_RejectsEmpty()
|
|
|
|
|
{
|
|
|
|
|
var ok = WorkOrderNumberNormalizer.TryNormalize("", out _, out var error);
|
|
|
|
|
|
|
|
|
|
Assert.False(ok);
|
|
|
|
|
Assert.NotNull(error);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TryNormalize_RejectsTooLong()
|
|
|
|
|
{
|
|
|
|
|
var ok = WorkOrderNumberNormalizer.TryNormalize("123456789012", out _, out var error);
|
|
|
|
|
|
|
|
|
|
Assert.False(ok);
|
|
|
|
|
Assert.Contains("11", error);
|
|
|
|
|
}
|
2026-09-16 15:01:10 -03:00
|
|
|
|
|
|
|
|
[Theory]
|
|
|
|
|
[InlineData("SH00001", "SH00001")]
|
|
|
|
|
[InlineData(" sh00001 ", "SH00001")]
|
|
|
|
|
[InlineData("SH-00001", "SH00001")]
|
|
|
|
|
[InlineData("SH1", "SH00001")]
|
|
|
|
|
[InlineData("SH123456789", "SH123456789")]
|
|
|
|
|
public void TryNormalize_KeepsShPlaceholderPrefix(string input, string expected)
|
|
|
|
|
{
|
|
|
|
|
var ok = WorkOrderNumberNormalizer.TryNormalize(input, out var normalized, out var error);
|
|
|
|
|
|
|
|
|
|
Assert.True(ok);
|
|
|
|
|
Assert.Null(error);
|
|
|
|
|
Assert.Equal(expected, normalized);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Theory]
|
|
|
|
|
[InlineData("SH")]
|
|
|
|
|
[InlineData("SH1234567890")]
|
|
|
|
|
public void TryNormalize_RejectsInvalidShPlaceholder(string input)
|
|
|
|
|
{
|
|
|
|
|
var ok = WorkOrderNumberNormalizer.TryNormalize(input, out _, out var error);
|
|
|
|
|
|
|
|
|
|
Assert.False(ok);
|
|
|
|
|
Assert.NotNull(error);
|
|
|
|
|
}
|
2026-06-30 13:20:41 -03:00
|
|
|
}
|