16
16
17
17
package org .springframework .test .web .servlet .setup ;
18
18
19
+ import java .io .IOException ;
20
+ import javax .servlet .Filter ;
21
+ import javax .servlet .FilterChain ;
22
+ import javax .servlet .ServletException ;
23
+ import javax .servlet .http .HttpServletRequest ;
24
+ import javax .servlet .http .HttpServletResponse ;
25
+
19
26
import org .junit .Test ;
20
27
21
28
import org .springframework .mock .web .test .MockHttpServletRequest ;
22
29
import org .springframework .stereotype .Controller ;
23
30
import org .springframework .web .bind .annotation .RequestMapping ;
24
31
import org .springframework .web .context .WebApplicationContext ;
25
32
import org .springframework .web .context .support .WebApplicationContextUtils ;
33
+ import org .springframework .web .filter .OncePerRequestFilter ;
26
34
import org .springframework .web .method .HandlerMethod ;
27
35
import org .springframework .web .servlet .HandlerExecutionChain ;
28
36
import org .springframework .web .servlet .mvc .method .annotation .RequestMappingHandlerMapping ;
29
37
30
38
import static org .junit .Assert .*;
31
39
32
40
/**
33
- * @author Rossen Stoyanchev
41
+ * Tests for {@link StandaloneMockMvcBuilder}
42
+ *
43
+ * @author Rossen
44
+ * @author Rob Winch
45
+ * @author Sebastien Deleuze
34
46
*/
35
47
public class StandaloneMockMvcBuilderTests {
36
48
37
-
38
- // SPR-10825
39
-
40
- @ Test
49
+ @ Test // SPR-10825
41
50
public void placeHoldersInRequestMapping () throws Exception {
42
51
43
52
TestStandaloneMockMvcBuilder builder = new TestStandaloneMockMvcBuilder (new PlaceholderController ());
@@ -63,6 +72,30 @@ public void applicationContextAttribute() {
63
72
}
64
73
65
74
75
+ @ Test (expected = IllegalArgumentException .class )
76
+ public void addFiltersFiltersNull () {
77
+ StandaloneMockMvcBuilder builder = MockMvcBuilders .standaloneSetup (new PersonController ());
78
+ builder .addFilters ((Filter []) null );
79
+ }
80
+
81
+ @ Test (expected = IllegalArgumentException .class )
82
+ public void addFiltersFiltersContainsNull () {
83
+ StandaloneMockMvcBuilder builder = MockMvcBuilders .standaloneSetup (new PersonController ());
84
+ builder .addFilters (new ContinueFilter (), (Filter ) null );
85
+ }
86
+
87
+ @ Test (expected = IllegalArgumentException .class )
88
+ public void addFilterPatternsNull () {
89
+ StandaloneMockMvcBuilder builder = MockMvcBuilders .standaloneSetup (new PersonController ());
90
+ builder .addFilter (new ContinueFilter (), (String []) null );
91
+ }
92
+
93
+ @ Test (expected = IllegalArgumentException .class )
94
+ public void addFilterPatternContainsNull () {
95
+ StandaloneMockMvcBuilder builder = MockMvcBuilders .standaloneSetup (new PersonController ());
96
+ builder .addFilter (new ContinueFilter (), (String ) null );
97
+ }
98
+
66
99
67
100
@ Controller
68
101
private static class PlaceholderController {
@@ -86,4 +119,21 @@ protected WebApplicationContext initWebAppContext() {
86
119
return this .wac ;
87
120
}
88
121
}
122
+
123
+ @ Controller
124
+ private static class PersonController {
125
+ @ RequestMapping (value ="/forward" )
126
+ public String forward () {
127
+ return "forward:/persons" ;
128
+ }
129
+ }
130
+
131
+ private class ContinueFilter extends OncePerRequestFilter {
132
+ @ Override
133
+ protected void doFilterInternal (HttpServletRequest request , HttpServletResponse response ,
134
+ FilterChain filterChain ) throws ServletException , IOException {
135
+ filterChain .doFilter (request , response );
136
+ }
137
+ }
138
+
89
139
}
0 commit comments