@@ -71,19 +71,24 @@ public async Task LocalPortFiltering_RejectsBlockedPort(int status, int localPor
7171 }
7272
7373 [ Theory ]
74- [ InlineData ( true ) ]
75- [ InlineData ( false ) ]
76- public async Task LocalPortFiltering_Response ( bool includeFailureMessage )
74+ [ InlineData ( true , true ) ]
75+ [ InlineData ( true , false ) ]
76+ [ InlineData ( false , true ) ]
77+ [ InlineData ( false , false ) ]
78+ public async Task LocalPortFiltering_Response ( bool initialIncludeFailureMessage , bool updatedIncludeFailureMessage )
7779 {
7880 // Arrange
81+ Action < LocalPortFilteringOptions , string ? > ? onChangeCallback = null ;
7982 var options = new LocalPortFilteringOptions ( )
8083 {
81- IncludeFailureMessage = includeFailureMessage
84+ IncludeFailureMessage = initialIncludeFailureMessage
8285 } ;
8386 var optionsMonitor = new Mock < IOptionsMonitor < LocalPortFilteringOptions > > ( ) ;
8487 optionsMonitor . Setup ( o => o . CurrentValue )
8588 . Returns ( options )
8689 . Verifiable ( ) ;
90+ optionsMonitor . Setup ( o => o . OnChange ( It . IsAny < Action < LocalPortFilteringOptions , string ? > > ( ) ) )
91+ . Callback < Action < LocalPortFilteringOptions , string ? > > ( callback => onChangeCallback = callback ) ;
8792 var middleware = new LocalPortFilteringMiddleware ( Mock . Of < RequestDelegate > ( ) , optionsMonitor . Object ) ;
8893
8994 var httpContext = new DefaultHttpContext ( ) ;
@@ -93,13 +98,17 @@ public async Task LocalPortFiltering_Response(bool includeFailureMessage)
9398 httpContext . Response . Body = responseBody ;
9499
95100 // Act
101+ onChangeCallback ? . Invoke ( new LocalPortFilteringOptions
102+ {
103+ IncludeFailureMessage = updatedIncludeFailureMessage
104+ } , "TestChange" ) ;
96105 await middleware . Invoke ( httpContext ) ;
97106 responseBody . Seek ( 0 , SeekOrigin . Begin ) ;
98107 var responseContent = responseBody . ToArray ( ) ;
99108
100109 // Assert
101110 Assert . Equal ( 403 , httpContext . Response . StatusCode ) ;
102- if ( includeFailureMessage )
111+ if ( updatedIncludeFailureMessage )
103112 {
104113 Assert . Equal ( LocalPortFilteringMiddleware . DefaultResponse . Length , httpContext . Response . ContentLength ) ;
105114 Assert . Equal ( "application/json" , httpContext . Response . ContentType ) ;
0 commit comments