1
1
/*
2
- * Copyright 2002-2024 the original author or authors.
2
+ * Copyright 2002-2025 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
23
23
import org .junit .jupiter .api .Test ;
24
24
25
25
import org .springframework .context .support .StaticApplicationContext ;
26
+ import org .springframework .web .testfixture .servlet .MockHttpServletRequest ;
26
27
27
28
import static java .util .Map .entry ;
28
29
import static org .assertj .core .api .Assertions .assertThat ;
@@ -45,10 +46,11 @@ void registerRootHandler() {
45
46
}
46
47
47
48
@ Test
48
- void registerDefaultHandler () {
49
- TestController defaultHandler = new TestController ();
50
- mapping .registerHandler ("/*" , defaultHandler );
51
- assertThat (mapping ).satisfies (hasMappings (null , defaultHandler , Map .of ()));
49
+ void registerWildcardHandler () throws Exception {
50
+ TestController handler = new TestController ();
51
+ mapping .registerHandler ("/*" , handler );
52
+ assertThat (mapping ).satisfies (hasMappings (null , null , Map .of ()));
53
+ assertThat (getHandlerForPath ("/abc" )).isNotNull ();
52
54
}
53
55
54
56
@ Test
@@ -70,43 +72,41 @@ void registerSpecificMappingWithBeanName() {
70
72
@ Test
71
73
void unregisterRootHandler () {
72
74
TestController rootHandler = new TestController ();
73
- TestController defaultHandler = new TestController ();
74
75
TestController specificHandler = new TestController ();
75
76
mapping .registerHandler ("/" , rootHandler );
76
- mapping .registerHandler ("/*" , defaultHandler );
77
77
mapping .registerHandler ("/test" , specificHandler );
78
- assertThat (mapping ).satisfies (hasMappings (rootHandler , defaultHandler , Map .of ("/test" , specificHandler )));
78
+ assertThat (mapping ).satisfies (hasMappings (rootHandler , null , Map .of ("/test" , specificHandler )));
79
79
80
80
mapping .unregisterHandler ("/" );
81
- assertThat (mapping ).satisfies (hasMappings (null , defaultHandler , Map .of ("/test" , specificHandler )));
81
+ assertThat (mapping ).satisfies (hasMappings (null , null , Map .of ("/test" , specificHandler )));
82
82
}
83
83
84
84
@ Test
85
- void unregisterDefaultHandler () {
86
- TestController rootHandler = new TestController ();
87
- TestController defaultHandler = new TestController ();
85
+ void unregisterDefaultHandler () throws Exception {
86
+ TestController wildcardHandler = new TestController ();
88
87
TestController specificHandler = new TestController ();
89
- mapping .registerHandler ("/" , rootHandler );
90
- mapping .registerHandler ("/*" , defaultHandler );
88
+ mapping .registerHandler ("/*" , wildcardHandler );
91
89
mapping .registerHandler ("/test" , specificHandler );
92
- assertThat (mapping ).satisfies (hasMappings (rootHandler , defaultHandler , Map .of ("/test" , specificHandler )));
90
+ assertThat (mapping ).satisfies (hasMappings (null , null , Map .of ("/test" , specificHandler )));
91
+ assertThat (getHandlerForPath ("/abc" )).isNotNull ();
93
92
94
93
mapping .unregisterHandler ("/*" );
95
- assertThat (mapping ).satisfies (hasMappings (rootHandler , null , Map .of ("/test" , specificHandler )));
94
+ assertThat (mapping ).satisfies (hasMappings (null , null , Map .of ("/test" , specificHandler )));
95
+ assertThat (getHandlerForPath ("/abc" )).isNull ();
96
96
}
97
97
98
98
@ Test
99
99
void unregisterSpecificHandler () {
100
100
TestController rootHandler = new TestController ();
101
- TestController defaultHandler = new TestController ();
101
+ TestController wildcardHandler = new TestController ();
102
102
TestController specificHandler = new TestController ();
103
103
mapping .registerHandler ("/" , rootHandler );
104
- mapping .registerHandler ("/*" , defaultHandler );
104
+ mapping .registerHandler ("/*" , wildcardHandler );
105
105
mapping .registerHandler ("/test" , specificHandler );
106
- assertThat (mapping ).satisfies (hasMappings (rootHandler , defaultHandler , Map .of ("/test" , specificHandler )));
106
+ assertThat (mapping ).satisfies (hasMappings (rootHandler , null , Map .of ("/test" , specificHandler )));
107
107
108
108
mapping .unregisterHandler ("/test" );
109
- assertThat (mapping ).satisfies (hasMappings (rootHandler , defaultHandler , Map .of ()));
109
+ assertThat (mapping ).satisfies (hasMappings (rootHandler , null , Map .of ()));
110
110
}
111
111
112
112
@ Test
@@ -129,15 +129,22 @@ void unregisterUnknownHandler() {
129
129
}
130
130
131
131
132
- private Consumer <AbstractUrlHandlerMapping > hasMappings (@ Nullable Object rootHandler ,
133
- @ Nullable Object defaultHandler , Map <String , Object > handlerMap ) {
132
+ private Consumer <AbstractUrlHandlerMapping > hasMappings (
133
+ @ Nullable Object rootHandler , @ Nullable Object defaultHandler , Map <String , Object > handlerMap ) {
134
+
134
135
return actual -> {
135
136
assertThat (actual .getRootHandler ()).isEqualTo (rootHandler );
136
137
assertThat (actual .getDefaultHandler ()).isEqualTo (defaultHandler );
137
138
assertThat (actual .getHandlerMap ()).containsExactlyEntriesOf (handlerMap );
138
139
};
139
140
}
140
141
142
+ private Object getHandlerForPath (String path ) throws Exception {
143
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , path );
144
+ return mapping .getHandlerInternal (request );
145
+ }
146
+
147
+
141
148
private static class TestController {}
142
149
143
150
}
0 commit comments