1616
1717package org .springframework .web .server .handler ;
1818
19+ import java .time .Duration ;
1920import java .util .Arrays ;
2021import java .util .Collections ;
21- import java .util .List ;
2222
2323import org .apache .commons .logging .Log ;
2424import org .apache .commons .logging .LogFactory ;
25- import org .junit .Before ;
2625import org .junit .Test ;
2726import reactor .core .publisher .Mono ;
2827
2928import org .springframework .http .HttpStatus ;
30- import org .springframework .http .server .reactive .HttpHandler ;
3129import org .springframework .mock .http .server .reactive .test .MockServerHttpRequest ;
3230import org .springframework .mock .http .server .reactive .test .MockServerHttpResponse ;
3331import org .springframework .web .server .ServerWebExchange ;
@@ -49,89 +47,86 @@ public class FilteringWebHandlerTests {
4947
5048 private static Log logger = LogFactory .getLog (FilteringWebHandlerTests .class );
5149
52- private MockServerHttpRequest request ;
53-
54- private MockServerHttpResponse response ;
55-
56-
57- @ Before
58- public void setUp () throws Exception {
59- this .request = MockServerHttpRequest .get ("http://localhost" ).build ();
60- this .response = new MockServerHttpResponse ();
61- }
62-
6350
6451 @ Test
6552 public void multipleFilters () throws Exception {
66- StubWebHandler webHandler = new StubWebHandler ();
53+
6754 TestFilter filter1 = new TestFilter ();
6855 TestFilter filter2 = new TestFilter ();
6956 TestFilter filter3 = new TestFilter ();
70- HttpHandler httpHandler = createHttpHandler (webHandler , filter1 , filter2 , filter3 );
71- httpHandler .handle (this .request , this .response ).block ();
57+ StubWebHandler targetHandler = new StubWebHandler ();
58+
59+ new FilteringWebHandler (targetHandler , Arrays .asList (filter1 , filter2 , filter3 ))
60+ .handle (MockServerHttpRequest .get ("/" ).toExchange ())
61+ .block (Duration .ZERO );
7262
7363 assertTrue (filter1 .invoked ());
7464 assertTrue (filter2 .invoked ());
7565 assertTrue (filter3 .invoked ());
76- assertTrue (webHandler .invoked ());
66+ assertTrue (targetHandler .invoked ());
7767 }
7868
7969 @ Test
8070 public void zeroFilters () throws Exception {
81- StubWebHandler webHandler = new StubWebHandler ();
82- HttpHandler httpHandler = createHttpHandler (webHandler );
83- httpHandler .handle (this .request , this .response ).block ();
8471
85- assertTrue (webHandler .invoked ());
72+ StubWebHandler targetHandler = new StubWebHandler ();
73+
74+ new FilteringWebHandler (targetHandler , Collections .emptyList ())
75+ .handle (MockServerHttpRequest .get ("/" ).toExchange ())
76+ .block (Duration .ZERO );
77+
78+ assertTrue (targetHandler .invoked ());
8679 }
8780
8881 @ Test
8982 public void shortcircuitFilter () throws Exception {
90- StubWebHandler webHandler = new StubWebHandler ();
83+
9184 TestFilter filter1 = new TestFilter ();
9285 ShortcircuitingFilter filter2 = new ShortcircuitingFilter ();
9386 TestFilter filter3 = new TestFilter ();
94- HttpHandler httpHandler = createHttpHandler (webHandler , filter1 , filter2 , filter3 );
95- httpHandler .handle (this .request , this .response ).block ();
87+ StubWebHandler targetHandler = new StubWebHandler ();
88+
89+ new FilteringWebHandler (targetHandler , Arrays .asList (filter1 , filter2 , filter3 ))
90+ .handle (MockServerHttpRequest .get ("/" ).toExchange ())
91+ .block (Duration .ZERO );
9692
9793 assertTrue (filter1 .invoked ());
9894 assertTrue (filter2 .invoked ());
9995 assertFalse (filter3 .invoked ());
100- assertFalse (webHandler .invoked ());
96+ assertFalse (targetHandler .invoked ());
10197 }
10298
10399 @ Test
104100 public void asyncFilter () throws Exception {
105- StubWebHandler webHandler = new StubWebHandler ();
101+
106102 AsyncFilter filter = new AsyncFilter ();
107- HttpHandler httpHandler = createHttpHandler (webHandler , filter );
108- httpHandler .handle (this .request , this .response ).block ();
103+ StubWebHandler targetHandler = new StubWebHandler ();
104+
105+ new FilteringWebHandler (targetHandler , Collections .singletonList (filter ))
106+ .handle (MockServerHttpRequest .get ("/" ).toExchange ())
107+ .block (Duration .ZERO );
109108
110109 assertTrue (filter .invoked ());
111- assertTrue (webHandler .invoked ());
110+ assertTrue (targetHandler .invoked ());
112111 }
113112
114113 @ Test
115114 public void handleErrorFromFilter () throws Exception {
115+
116+ MockServerHttpRequest request = MockServerHttpRequest .get ("/" ).build ();
117+ MockServerHttpResponse response = new MockServerHttpResponse ();
118+
116119 TestExceptionHandler exceptionHandler = new TestExceptionHandler ();
117- List <ExceptionFilter > filters = Collections .singletonList (new ExceptionFilter ());
118- List <WebExceptionHandler > exceptionHandlers = Collections .singletonList (exceptionHandler );
119120
120121 WebHttpHandlerBuilder .webHandler (new StubWebHandler ())
121- .filters (filters ).exceptionHandlers (exceptionHandlers ).build ()
122- .handle (this .request , this .response )
122+ .filters (Collections .singletonList (new ExceptionFilter ()))
123+ .exceptionHandlers (Collections .singletonList (exceptionHandler )).build ()
124+ .handle (request , response )
123125 .block ();
124126
125- assertEquals (HttpStatus .INTERNAL_SERVER_ERROR , this .response .getStatusCode ());
126-
127- Throwable savedException = exceptionHandler .ex ;
128- assertNotNull (savedException );
129- assertEquals ("boo" , savedException .getMessage ());
130- }
131-
132-
133- private HttpHandler createHttpHandler (StubWebHandler webHandler , WebFilter ... filters ) {
134- return WebHttpHandlerBuilder .webHandler (webHandler ).filters (Arrays .asList (filters )).build ();
127+ assertEquals (HttpStatus .INTERNAL_SERVER_ERROR , response .getStatusCode ());
128+ assertNotNull (exceptionHandler .ex );
129+ assertEquals ("boo" , exceptionHandler .ex .getMessage ());
135130 }
136131
137132
0 commit comments