From af233b7c23ec41872ee76630b8b2f01d4297e47b Mon Sep 17 00:00:00 2001 From: Tino Hager Date: Tue, 21 Jan 2025 15:13:10 +0100 Subject: [PATCH] Add unit tests for dkim selector --- .../DkimHeaderParserTests/SelectorTest.cs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/Nager.EmailAuthentication.UnitTest/DkimHeaderParserTests/SelectorTest.cs diff --git a/src/Nager.EmailAuthentication.UnitTest/DkimHeaderParserTests/SelectorTest.cs b/src/Nager.EmailAuthentication.UnitTest/DkimHeaderParserTests/SelectorTest.cs new file mode 100644 index 0000000..dceffd5 --- /dev/null +++ b/src/Nager.EmailAuthentication.UnitTest/DkimHeaderParserTests/SelectorTest.cs @@ -0,0 +1,34 @@ +namespace Nager.EmailAuthentication.UnitTest.DkimHeaderParserTests +{ + [TestClass] + public sealed class SelectorTest + { + [DataRow("selector1")] + [DataRow("selector2")] + [DataRow("google")] + [DataTestMethod] + public void TryParse_ValidVersionDkimHeaderString_ReturnsTrueAndPopulatesDataFragment(string selector) + { + var dkimHeader = $"v=1; a=rsa-sha256; d=domain.com; s={selector}; h=message-id:from; bh=testbodyhash=; b=signaturedata"; + + var isSuccessful = DkimHeaderParser.TryParse(dkimHeader, out var dkimHeaderDataFragment, out var parseErrors); + + Assert.IsTrue(isSuccessful); + Assert.IsNotNull(dkimHeaderDataFragment); + Assert.IsNull(parseErrors, "ParseErrors is not null"); + } + + [DataRow("verylongandinvalidselectorverylongandinvalidselectorverylongandinvalidselector")] + [DataTestMethod] + public void TryParse_InvalidVersionDkimHeaderString_ReturnsTrueAndPopulatesDataFragment(string selector) + { + var dkimHeader = $"v=1; a=rsa-sha256; d=domain.com; s={selector}; h=message-id:from; bh=testbodyhash=; b=signaturedata"; + + var isSuccessful = DkimHeaderParser.TryParse(dkimHeader, out var dkimHeaderDataFragment, out var parseErrors); + + Assert.IsTrue(isSuccessful); + Assert.IsNotNull(dkimHeaderDataFragment); + Assert.IsNotNull(parseErrors, "ParseErrors is null"); + } + } +}