@@ -116,15 +116,47 @@ bool expected
116
116
) ;
117
117
}
118
118
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 ) ) ]
126
158
public void AddMuninNodeLoopbackOnlyAccessRule (
127
- string remoteAddress ,
159
+ IPAddress remoteAddress ,
128
160
bool expected
129
161
)
130
162
{
@@ -135,7 +167,7 @@ bool expected
135
167
var accessRule = services . BuildServiceProvider ( ) . GetRequiredService < IAccessRule > ( ) ;
136
168
137
169
Assert . That (
138
- accessRule . IsAcceptable ( new ( IPAddress . Parse ( remoteAddress ) , port : 0 ) ) ,
170
+ accessRule . IsAcceptable ( new ( remoteAddress , port : 0 ) ) ,
139
171
Is . EqualTo ( expected )
140
172
) ;
141
173
}
0 commit comments