namespace Cepis.Tests;
/// Local validation, which happens before any request.
public sealed class NormalizeTests
{
[Theory]
[InlineData("01001000", "01001000")]
[InlineData("01001-000", "01001000")]
[InlineData(" 01001-000 ", "01001000")]
[InlineData("01.001-000", "01001000")]
[InlineData("01 001 000", "01001000")]
public void AcceptsTheMask(string input, string expected) =>
Assert.Equal(expected, CepisClient.NormalizeCep(input));
[Theory]
[InlineData("")]
[InlineData("0100100")]
[InlineData("010010000")]
[InlineData("0100100a")]
[InlineData("abcdefgh")]
[InlineData("01001-00")]
public void RejectsAnythingElse(string input) =>
Assert.Throws(() => CepisClient.NormalizeCep(input));
[Fact]
public void RejectsNull() =>
Assert.Throws(() => CepisClient.NormalizeCep(null!));
[Fact]
public void TheMessageCarriesWhatWasGiven()
{
var failure = Assert.Throws(() => CepisClient.NormalizeCep("123"));
Assert.Contains("123", failure.Message, StringComparison.Ordinal);
}
}