@@ -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