Skip to content

Commit 44f3ede

Browse files
committed
Optimize unit test logic
1 parent fec11a9 commit 44f3ede

File tree

18 files changed

+187
-89
lines changed

18 files changed

+187
-89
lines changed

src/Nager.EmailAuthentication.UnitTest/DkimPublicKeyRecordParserTests/BasicTest.cs renamed to src/Nager.EmailAuthentication.UnitTest/DkimPublicKeyRecordTests/FragmentParser/BasicTest.cs

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Nager.EmailAuthentication.FragmentParsers;
22

3-
namespace Nager.EmailAuthentication.UnitTest.DkimPublicKeyRecordParserTests
3+
namespace Nager.EmailAuthentication.UnitTest.DkimPublicKeyRecordTests.FragmentParser
44
{
55
[TestClass]
66
public sealed class BasicTest
@@ -52,35 +52,5 @@ public void TryParse_WrongDkimPublicKeyRecord1_ReturnsTrueAndPopulatesDataFragme
5252
Assert.IsNotNull(dkimPublicKeyRecordDataFragment);
5353
Assert.IsNotNull(parsingResults, "ParsingResults is null");
5454
}
55-
56-
[TestMethod]
57-
public void TryParse_WrongDkimPublicKeyRecord2_ReturnsTrueAndPopulatesDataFragment()
58-
{
59-
var dkimPublicKeyRecordRaw = "v=DMARC1;p=reject;";
60-
61-
var isSuccessful = DkimPublicKeyRecordParser.TryParse(dkimPublicKeyRecordRaw, out var dkimPublicKeyRecord);
62-
Assert.IsFalse(isSuccessful);
63-
Assert.IsNull(dkimPublicKeyRecord, "DkimPublicKeyRecord is not null");
64-
}
65-
66-
[TestMethod]
67-
public void TryParse_DkimPublicKeyRecordWithVersion_ReturnsTrueAndPopulatesData()
68-
{
69-
var dkimPublicKeyRecordRaw = "v=DKIM1;p=test;";
70-
71-
var isSuccessful = DkimPublicKeyRecordParser.TryParse(dkimPublicKeyRecordRaw, out var dkimPublicKeyRecord);
72-
Assert.IsTrue(isSuccessful);
73-
Assert.IsNotNull(dkimPublicKeyRecord, "DkimPublicKeyRecord is null");
74-
}
75-
76-
[TestMethod]
77-
public void TryParse_DkimPublicKeyRecordWithoutVersion_ReturnsTrueAndPopulatesData()
78-
{
79-
var dkimPublicKeyRecordRaw = "k=rsa; p=test";
80-
81-
var isSuccessful = DkimPublicKeyRecordParser.TryParse(dkimPublicKeyRecordRaw, out var dkimPublicKeyRecord);
82-
Assert.IsTrue(isSuccessful);
83-
Assert.IsNotNull(dkimPublicKeyRecord, "DkimPublicKeyRecord is null");
84-
}
8555
}
8656
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using Nager.EmailAuthentication.Models;
2+
3+
namespace Nager.EmailAuthentication.UnitTest.DkimPublicKeyRecordTests.Parser
4+
{
5+
[TestClass]
6+
public sealed class BasicTest
7+
{
8+
[TestMethod]
9+
public void TryParse_DkimPublicKeyRecordWithVersion_ReturnsTrueAndPopulatesData()
10+
{
11+
var dkimPublicKeyRecordRaw = "v=DKIM1;p=test;";
12+
13+
var isSuccessful = DkimPublicKeyRecordParser.TryParse(dkimPublicKeyRecordRaw, out var dkimPublicKeyRecord);
14+
Assert.IsTrue(isSuccessful);
15+
Assert.IsNotNull(dkimPublicKeyRecord, "DkimPublicKeyRecord is null");
16+
17+
if (dkimPublicKeyRecord is not DkimPublicKeyRecordV1 dkimPublicKeyRecordV1)
18+
{
19+
Assert.Fail("Wrong DkimPublicKeyRecordV1 class");
20+
return;
21+
}
22+
23+
Assert.AreEqual("DKIM1", dkimPublicKeyRecordV1.Version);
24+
Assert.AreEqual("rsa", dkimPublicKeyRecordV1.KeyType);
25+
Assert.AreEqual("test", dkimPublicKeyRecordV1.PublicKeyData);
26+
}
27+
28+
[TestMethod]
29+
public void TryParse_DkimPublicKeyRecordWithoutVersion_ReturnsTrueAndPopulatesData()
30+
{
31+
var dkimPublicKeyRecordRaw = "k=rsa; p=test";
32+
33+
var isSuccessful = DkimPublicKeyRecordParser.TryParse(dkimPublicKeyRecordRaw, out var dkimPublicKeyRecord);
34+
Assert.IsTrue(isSuccessful);
35+
Assert.IsNotNull(dkimPublicKeyRecord, "DkimPublicKeyRecord is null");
36+
37+
if (dkimPublicKeyRecord is not DkimPublicKeyRecordV1 dkimPublicKeyRecordV1)
38+
{
39+
Assert.Fail("Wrong DkimPublicKeyRecordV1 class");
40+
return;
41+
}
42+
43+
Assert.AreEqual("DKIM1", dkimPublicKeyRecordV1.Version);
44+
Assert.AreEqual("rsa", dkimPublicKeyRecordV1.KeyType);
45+
Assert.AreEqual("test", dkimPublicKeyRecordV1.PublicKeyData);
46+
}
47+
48+
[TestMethod]
49+
public void TryParse_WrongDkimPublicKeyRecord_ReturnsFalse()
50+
{
51+
var dkimPublicKeyRecordRaw = "v=DMARC1;p=reject;";
52+
53+
var isSuccessful = DkimPublicKeyRecordParser.TryParse(dkimPublicKeyRecordRaw, out var dkimPublicKeyRecord);
54+
Assert.IsFalse(isSuccessful);
55+
Assert.IsNull(dkimPublicKeyRecord, "DkimPublicKeyRecord is not null");
56+
}
57+
}
58+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using Nager.EmailAuthentication.FragmentParsers;
2+
using Nager.EmailAuthentication.Models;
3+
4+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureTests.FragmentParser
5+
{
6+
[TestClass]
7+
public sealed class BasicTest
8+
{
9+
[TestMethod]
10+
public void TryParse_ValidDkimSignature1_ReturnsTrueAndPopulatesDataFragment()
11+
{
12+
var dkimSignature = "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=";
13+
14+
var isSuccessful = DkimSignatureDataFragmentParserV1.TryParse(dkimSignature, out var dkimSignatureDataFragment, out var parsingResults);
15+
16+
Assert.IsTrue(isSuccessful);
17+
Assert.IsNotNull(dkimSignatureDataFragment);
18+
Assert.IsNotNull(parsingResults, "ParsingResults is not null");
19+
}
20+
}
21+
}

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/HeaderTest.cs renamed to src/Nager.EmailAuthentication.UnitTest/DkimSignatureTests/FragmentParser/HeaderTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Nager.EmailAuthentication.FragmentParsers;
22

3-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureTests.FragmentParser
44
{
55
[TestClass]
66
public sealed class HeaderTest

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/SelectorTest.cs renamed to src/Nager.EmailAuthentication.UnitTest/DkimSignatureTests/FragmentParser/SelectorTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Nager.EmailAuthentication.FragmentParsers;
22

3-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureTests.FragmentParser
44
{
55
[TestClass]
66
public sealed class SelectorTest

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/SignatureAlgorithmTest.cs renamed to src/Nager.EmailAuthentication.UnitTest/DkimSignatureTests/FragmentParser/SignatureAlgorithmTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Nager.EmailAuthentication.FragmentParsers;
22

3-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureTests.FragmentParser
44
{
55
[TestClass]
66
public sealed class SignatureAlgorithmTest

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/VersionTest.cs renamed to src/Nager.EmailAuthentication.UnitTest/DkimSignatureTests/FragmentParser/VersionTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Nager.EmailAuthentication.FragmentParsers;
22

3-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureTests.FragmentParser
44
{
55
[TestClass]
66
public sealed class VersionTest

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/BasicTest.cs renamed to src/Nager.EmailAuthentication.UnitTest/DkimSignatureTests/Parser/BasicTest.cs

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,10 @@
1-
using Nager.EmailAuthentication.FragmentParsers;
2-
using Nager.EmailAuthentication.Models;
1+
using Nager.EmailAuthentication.Models;
32

4-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureTests.Parser
54
{
65
[TestClass]
76
public sealed class BasicTest
87
{
9-
[TestMethod]
10-
public void TryParse_ValidDkimSignature1_ReturnsTrueAndPopulatesDataFragment()
11-
{
12-
var dkimSignature = "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=";
13-
14-
var isSuccessful = DkimSignatureDataFragmentParserV1.TryParse(dkimSignature, out var dkimSignatureDataFragment, out var parsingResults);
15-
16-
Assert.IsTrue(isSuccessful);
17-
Assert.IsNotNull(dkimSignatureDataFragment);
18-
Assert.IsNotNull(parsingResults, "ParsingResults is not null");
19-
}
20-
218
[TestMethod]
229
public void TryParse_ValidDkimSignature_ReturnsTrueAndDkimSignature()
2310
{
@@ -36,7 +23,7 @@ public void TryParse_ValidDkimSignature_ReturnsTrueAndDkimSignature()
3623
Assert.Fail("Wrong DkimSignature class");
3724
return;
3825
}
39-
26+
4027
Assert.AreEqual("1", dkimSignature.Version);
4128
Assert.AreEqual(SignatureAlgorithm.RsaSha256, dkimSignatureV1.SignatureAlgorithm);
4229
Assert.AreEqual(CanonicalizationType.Relaxed, dkimSignatureV1.MessageCanonicalizationHeader);

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/FoldingTest.cs renamed to src/Nager.EmailAuthentication.UnitTest/DkimSignatureTests/Parser/FoldingTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Nager.EmailAuthentication.Models;
22

3-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureTests.Parser
44
{
55
[TestClass]
66
public sealed class FoldingTest
@@ -34,7 +34,7 @@ public void TryParse_ValidSelector_ReturnsTrueAndPopulatesDataFragment()
3434
//Assert.AreEqual(["cc"], dkimSignature.SignedHeaderFields);
3535
Assert.AreEqual(new DateTimeOffset(2023, 8, 3, 3, 22, 14, TimeSpan.Zero), dkimSignatureV1.Timestamp);
3636
Assert.AreEqual(new DateTimeOffset(2023, 8, 4, 3, 22, 14, TimeSpan.Zero), dkimSignatureV1.SignatureExpiration);
37-
37+
3838

3939
//Assert.IsNull(parsingResults, "ParsingResults is not null");
4040
}

src/Nager.EmailAuthentication.UnitTest/DkimSignatureParserTests/MessageCanonicalizationTest.cs renamed to src/Nager.EmailAuthentication.UnitTest/DkimSignatureTests/Parser/MessageCanonicalizationTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using Nager.EmailAuthentication.Models;
22

3-
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureParserTests
3+
namespace Nager.EmailAuthentication.UnitTest.DkimSignatureTests.Parser
44
{
55
[TestClass]
66
public sealed class MessageCanonicalizationTest

0 commit comments

Comments
 (0)