diff options
Diffstat (limited to 'tests/Cepis.Tests/NormalizeTests.cs')
| -rw-r--r-- | tests/Cepis.Tests/NormalizeTests.cs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/Cepis.Tests/NormalizeTests.cs b/tests/Cepis.Tests/NormalizeTests.cs new file mode 100644 index 0000000..3ff60cb --- /dev/null +++ b/tests/Cepis.Tests/NormalizeTests.cs @@ -0,0 +1,35 @@ +namespace Cepis.Tests; + +/// <summary>Local validation, which happens before any request.</summary> +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<InvalidCepException>(() => CepisClient.NormalizeCep(input)); + + [Fact] + public void RejectsNull() => + Assert.Throws<InvalidCepException>(() => CepisClient.NormalizeCep(null!)); + + [Fact] + public void TheMessageCarriesWhatWasGiven() + { + var failure = Assert.Throws<InvalidCepException>(() => CepisClient.NormalizeCep("123")); + Assert.Contains("123", failure.Message, StringComparison.Ordinal); + } +} |