Skip to content

Commit 8283d77

Browse files
committed
add test cases
1 parent 1379847 commit 8283d77

File tree

1 file changed

+41
-9
lines changed

1 file changed

+41
-9
lines changed

tests/Smdn.Net.MuninNode/Smdn.Net.MuninNode/IAccessRuleServiceCollectionExtensions.cs

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,47 @@ bool expected
116116
);
117117
}
118118

119-
[TestCase("127.0.0.1", true)]
120-
[TestCase("127.255.255.255", true)]
121-
[TestCase("::1", true)]
122-
[TestCase("::ffff:127.0.0.1", true)]
123-
[TestCase("192.0.2.255", false)]
124-
[TestCase("2001:db8::1", false)]
125-
[TestCase("::ffff:192.0.2.255", false)]
119+
private static System.Collections.IEnumerable YieldTestCases_AddMuninNodeAccessRule_IReadOnlyListOfIPAddress_Loopback()
120+
{
121+
yield return new object[] { IPAddress.Parse("127.0.0.1"), true };
122+
yield return new object[] { IPAddress.Parse("::1"), true };
123+
yield return new object[] { IPAddress.Parse("::ffff:127.0.0.1"), true };
124+
yield return new object[] { IPAddress.Parse("192.0.2.255"), false };
125+
yield return new object[] { IPAddress.Parse("2001:db8::1"), false };
126+
yield return new object[] { IPAddress.Parse("::ffff:192.0.2.255"), false };
127+
}
128+
129+
[TestCaseSource(nameof(YieldTestCases_AddMuninNodeAccessRule_IReadOnlyListOfIPAddress_Loopback))]
130+
public void AddMuninNodeAccessRule_IReadOnlyListOfIPAddress_Loopback(
131+
IPAddress remoteAddress,
132+
bool expected
133+
)
134+
{
135+
var services = new ServiceCollection();
136+
137+
services.AddMuninNodeAccessRule([IPAddress.Loopback, IPAddress.IPv6Loopback]);
138+
139+
var accessRule = services.BuildServiceProvider().GetRequiredService<IAccessRule>();
140+
141+
Assert.That(
142+
accessRule.IsAcceptable(new(remoteAddress, port: 0)),
143+
Is.EqualTo(expected)
144+
);
145+
}
146+
147+
private static System.Collections.IEnumerable YieldTestCases_AddMuninNodeLoopbackOnlyAccessRule()
148+
{
149+
foreach (var testCase in YieldTestCases_AddMuninNodeAccessRule_IReadOnlyListOfIPAddress_Loopback()) {
150+
yield return testCase;
151+
}
152+
153+
yield return new object[] { IPAddress.Parse("127.0.0.255"), true };
154+
yield return new object[] { IPAddress.Parse("127.255.255.255"), true };
155+
}
156+
157+
[TestCaseSource(nameof(YieldTestCases_AddMuninNodeLoopbackOnlyAccessRule))]
126158
public void AddMuninNodeLoopbackOnlyAccessRule(
127-
string remoteAddress,
159+
IPAddress remoteAddress,
128160
bool expected
129161
)
130162
{
@@ -135,7 +167,7 @@ bool expected
135167
var accessRule = services.BuildServiceProvider().GetRequiredService<IAccessRule>();
136168

137169
Assert.That(
138-
accessRule.IsAcceptable(new(IPAddress.Parse(remoteAddress), port: 0)),
170+
accessRule.IsAcceptable(new(remoteAddress, port: 0)),
139171
Is.EqualTo(expected)
140172
);
141173
}

0 commit comments

Comments
 (0)