Skip to content

Commit 06989ce

Browse files
committed
Optimize UnitTests
1 parent d3ad446 commit 06989ce

File tree

4 files changed

+55
-14
lines changed

4 files changed

+55
-14
lines changed

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/BasicTest.cs

+30-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
1+
using Nager.EmailAuthentication.Models;
2+
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
24
{
35
[TestClass]
46
public sealed class BasicTest
@@ -12,7 +14,33 @@ public void TryParse_ValidDkimSignature1_ReturnsTrueAndPopulatesDataFragment()
1214

1315
Assert.IsTrue(isSuccessful);
1416
Assert.IsNotNull(dkimSignatureDataFragment);
15-
//Assert.IsNull(parsingResults, "ParsingResults is not null");
17+
Assert.IsNotNull(parsingResults, "ParsingResults is not null");
18+
}
19+
20+
[TestMethod]
21+
public void TryParse_ValidDkimSignature_ReturnsTrueAndDkimSignature()
22+
{
23+
var dkimSignatureRaw = "v=1; a=rsa-sha256; c=relaxed/simple; q=dns/txt; d=domain.com; [email protected]; s=mailjet; x=1737017824; h=message-id:from:from:reply-to:to:to:subject:subject:date:date:list-unsubscribe-post:list-unsubscribe:feedback-id:x-csa-complaints:x-mj-mid:x-report-abuse-to:mime-version:content-type; bh=TyN/x6t3AOfI298rgJAgZHgdWcq/XLISGen5nN3NLAc=; b=HLCLiikV92Ku/k9mGlZM0bmqPjKggGnMI0igqhXmPRzPJUC+5SUWRS6/FLUpxbX6AUGJRDYQnKKMtp6uZkYVuKG8SPZ01cUkvIiiAkczb4bK6IVvPbZOnsWqHkD6EvK3TrpIhgFfGLlcG+zIwgdDZ3O++uhpJkIX1WJlkXZYqxQ=";
24+
25+
var isSuccessful = DkimSignatureParser.TryParse(dkimSignatureRaw, out var dkimSignature, out var parsingResults);
26+
27+
Assert.IsTrue(isSuccessful);
28+
29+
Assert.IsNotNull(parsingResults);
30+
Assert.IsTrue(parsingResults.Length > 0);
31+
32+
Assert.IsNotNull(dkimSignature);
33+
Assert.AreEqual("1", dkimSignature.Version);
34+
Assert.AreEqual(SignatureAlgorithm.RsaSha256, dkimSignature.SignatureAlgorithm);
35+
Assert.AreEqual("relaxed/simple", dkimSignature.MessageCanonicalization);
36+
Assert.AreEqual("dns/txt", dkimSignature.QueryMethods);
37+
Assert.AreEqual("domain.com", dkimSignature.SigningDomainIdentifier);
38+
Assert.AreEqual("[email protected]", dkimSignature.AgentOrUserIdentifier);
39+
Assert.AreEqual("mailjet", dkimSignature.Selector);
40+
Assert.AreEqual(new DateTimeOffset(2025, 1, 16, 8, 57, 4, TimeSpan.Zero), dkimSignature.SignatureExpiration);
41+
Assert.AreEqual(18, dkimSignature.SignedHeaderFields.Length);
42+
Assert.AreEqual("TyN/x6t3AOfI298rgJAgZHgdWcq/XLISGen5nN3NLAc=", dkimSignature.BodyHash);
43+
Assert.AreEqual("HLCLiikV92Ku/k9mGlZM0bmqPjKggGnMI0igqhXmPRzPJUC+5SUWRS6/FLUpxbX6AUGJRDYQnKKMtp6uZkYVuKG8SPZ01cUkvIiiAkczb4bK6IVvPbZOnsWqHkD6EvK3TrpIhgFfGLlcG+zIwgdDZ3O++uhpJkIX1WJlkXZYqxQ=", dkimSignature.SignatureData);
1644
}
1745
}
1846
}

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/FoldingTest.cs

+17-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
1-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
1+
using Nager.EmailAuthentication.Models;
2+
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
24
{
35
[TestClass]
46
public sealed class FoldingTest
57
{
68
[TestMethod]
79
public void TryParse_ValidSelector_ReturnsTrueAndPopulatesDataFragment()
810
{
9-
var dkimSignature = "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\tdmarc.com; h=cc:content-transfer-encoding:content-type\t:content-type:date:date:from:from:in-reply-to:message-id\t:mime-version:reply-to:sender:subject:subject:to:to; s=selector1; t=\t1691032934; x=1691119334; bh=R3apwsNJ82/QU5M387ntjAXd9fEanDDMRVC\tWFXcJ4BU=; b=ERPju20CMzamO4CElotsxcged+Ospob+sROWU3fdwUXfA2edzbe\ttfb1QaOG5TM+qh4D5MwArT0VQTw7B/J2jvfTpgXTu/+8Lg8SOArRFyHTRQXfUDul\tY872sMKYLuO9n3I9ewthEZNen3m2YLVPQ5RyGkoBFSj1jh7m8crBgnFRBaztgOXc\tbNhI2OTdJckxlBoHQfggPEgwaoT1oJt0T8GQuUTqkEq/yD8K1CZ2hriBryRpw/tC\tBiDU/EK4fPEHKVzwRs+K3g6vPJ0tdz9zG5KyMnDtHmWfHymTXfJjnxhJ5DO5j/Nu\tng67Nt+cn+Jpmeko8eWd96TQzqokrW9PsoA==";
11+
var dkimSignatureRaw = "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\tdmarc.com; h=cc:content-transfer-encoding:content-type\t:content-type:date:date:from:from:in-reply-to:message-id\t:mime-version:reply-to:sender:subject:subject:to:to; s=selector1; t=\t1691032934; x=1691119334; bh=R3apwsNJ82/QU5M387ntjAXd9fEanDDMRVC\tWFXcJ4BU=; b=ERPju20CMzamO4CElotsxcged+Ospob+sROWU3fdwUXfA2edzbe\ttfb1QaOG5TM+qh4D5MwArT0VQTw7B/J2jvfTpgXTu/+8Lg8SOArRFyHTRQXfUDul\tY872sMKYLuO9n3I9ewthEZNen3m2YLVPQ5RyGkoBFSj1jh7m8crBgnFRBaztgOXc\tbNhI2OTdJckxlBoHQfggPEgwaoT1oJt0T8GQuUTqkEq/yD8K1CZ2hriBryRpw/tC\tBiDU/EK4fPEHKVzwRs+K3g6vPJ0tdz9zG5KyMnDtHmWfHymTXfJjnxhJ5DO5j/Nu\tng67Nt+cn+Jpmeko8eWd96TQzqokrW9PsoA==";
1012

11-
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimHeaderDataFragment, out var parsingResults);
13+
var isSuccessful = DkimSignatureParser.TryParse(dkimSignatureRaw, out var dkimSignature, out var parsingResults);
1214

1315
Assert.IsTrue(isSuccessful);
14-
Assert.IsNotNull(dkimHeaderDataFragment);
16+
Assert.IsNotNull(dkimSignature);
17+
18+
Assert.AreEqual("1", dkimSignature.Version);
19+
Assert.AreEqual(SignatureAlgorithm.RsaSha256, dkimSignature.SignatureAlgorithm);
20+
Assert.AreEqual("relaxed/relaxed", dkimSignature.MessageCanonicalization);
21+
Assert.AreEqual("dmarc.com", dkimSignature.SigningDomainIdentifier);
22+
Assert.AreEqual("selector1", dkimSignature.Selector);
23+
//Assert.AreEqual(["cc"], dkimSignature.SignedHeaderFields);
24+
Assert.AreEqual(new DateTimeOffset(2023, 8, 3, 3, 22, 14, TimeSpan.Zero), dkimSignature.Timestamp);
25+
Assert.AreEqual(new DateTimeOffset(2023, 8, 4, 3, 22, 14, TimeSpan.Zero), dkimSignature.SignatureExpiration);
26+
27+
1528
//Assert.IsNull(parsingResults, "ParsingResults is not null");
1629
}
1730
}

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/SelectorTest.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ public void TryParse_ValidSelector_ReturnsTrueAndPopulatesDataFragment(string se
1111
{
1212
var dkimSignature = $"v=1; a=rsa-sha256; d=domain.com; s={selector}; h=message-id:from; bh=testbodyhash=; b=signaturedata";
1313

14-
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimHeaderDataFragment, out var parsingResults);
14+
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimSignatureDataFragment, out var parsingResults);
1515

1616
Assert.IsTrue(isSuccessful);
17-
Assert.IsNotNull(dkimHeaderDataFragment);
17+
Assert.IsNotNull(dkimSignatureDataFragment);
1818
Assert.IsNull(parsingResults, "ParsingResults is not null");
1919
}
2020

@@ -24,10 +24,10 @@ public void TryParse_InvalidSelector_ReturnsTrueAndPopulatesDataFragment(string
2424
{
2525
var dkimSignature = $"v=1; a=rsa-sha256; d=domain.com; s={selector}; h=message-id:from; bh=testbodyhash=; b=signaturedata";
2626

27-
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimHeaderDataFragment, out var parsingResults);
27+
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimSignatureDataFragment, out var parsingResults);
2828

2929
Assert.IsTrue(isSuccessful);
30-
Assert.IsNotNull(dkimHeaderDataFragment);
30+
Assert.IsNotNull(dkimSignatureDataFragment);
3131
Assert.IsNotNull(parsingResults, "ParsingResults is null");
3232
}
3333
}

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/VersionTest.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ public void TryParse_ValidVersion_ReturnsTrueAndPopulatesDataFragment(string ver
1111
{
1212
var dkimSignature = $"v={version}; a=rsa-sha256; d=domain.com; s=myselector; h=message-id:from; bh=testbodyhash=; b=signaturedata";
1313

14-
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimHeaderDataFragment, out var parsingResults);
14+
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimSignatureDataFragment, out var parsingResults);
1515

1616
Assert.IsTrue(isSuccessful);
17-
Assert.IsNotNull(dkimHeaderDataFragment);
17+
Assert.IsNotNull(dkimSignatureDataFragment);
1818
Assert.IsNull(parsingResults, "ParsingResults is not null");
1919
}
2020

@@ -25,10 +25,10 @@ public void TryParse_InvalidVersion_ReturnsTrueAndPopulatesDataFragment(string v
2525
{
2626
var dkimSignature = $"v={version}; a=rsa-sha256; d=domain.com; s=myselector; h=message-id:from; bh=testbodyhash=; b=signaturedata";
2727

28-
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimHeaderDataFragment, out var parsingResults);
28+
var isSuccessful = DkimSignatureDataFragmentParser.TryParse(dkimSignature, out var dkimSignatureDataFragment, out var parsingResults);
2929

3030
Assert.IsTrue(isSuccessful);
31-
Assert.IsNotNull(dkimHeaderDataFragment);
31+
Assert.IsNotNull(dkimSignatureDataFragment);
3232
Assert.IsNotNull(parsingResults, "ParsingResults is null");
3333
}
3434
}

0 commit comments

Comments
 (0)