11/*
2- * Copyright 2002-2024 the original author or authors.
2+ * Copyright 2002-2025 the original author or authors.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
2323import org .junit .jupiter .api .Test ;
2424
2525import org .springframework .context .support .StaticApplicationContext ;
26+ import org .springframework .web .testfixture .servlet .MockHttpServletRequest ;
2627
2728import static java .util .Map .entry ;
2829import static org .assertj .core .api .Assertions .assertThat ;
@@ -45,10 +46,11 @@ void registerRootHandler() {
4546 }
4647
4748 @ 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 ();
5254 }
5355
5456 @ Test
@@ -70,43 +72,41 @@ void registerSpecificMappingWithBeanName() {
7072 @ Test
7173 void unregisterRootHandler () {
7274 TestController rootHandler = new TestController ();
73- TestController defaultHandler = new TestController ();
7475 TestController specificHandler = new TestController ();
7576 mapping .registerHandler ("/" , rootHandler );
76- mapping .registerHandler ("/*" , defaultHandler );
7777 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 )));
7979
8080 mapping .unregisterHandler ("/" );
81- assertThat (mapping ).satisfies (hasMappings (null , defaultHandler , Map .of ("/test" , specificHandler )));
81+ assertThat (mapping ).satisfies (hasMappings (null , null , Map .of ("/test" , specificHandler )));
8282 }
8383
8484 @ Test
85- void unregisterDefaultHandler () {
86- TestController rootHandler = new TestController ();
87- TestController defaultHandler = new TestController ();
85+ void unregisterDefaultHandler () throws Exception {
86+ TestController wildcardHandler = new TestController ();
8887 TestController specificHandler = new TestController ();
89- mapping .registerHandler ("/" , rootHandler );
90- mapping .registerHandler ("/*" , defaultHandler );
88+ mapping .registerHandler ("/*" , wildcardHandler );
9189 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 ();
9392
9493 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 ();
9696 }
9797
9898 @ Test
9999 void unregisterSpecificHandler () {
100100 TestController rootHandler = new TestController ();
101- TestController defaultHandler = new TestController ();
101+ TestController wildcardHandler = new TestController ();
102102 TestController specificHandler = new TestController ();
103103 mapping .registerHandler ("/" , rootHandler );
104- mapping .registerHandler ("/*" , defaultHandler );
104+ mapping .registerHandler ("/*" , wildcardHandler );
105105 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 )));
107107
108108 mapping .unregisterHandler ("/test" );
109- assertThat (mapping ).satisfies (hasMappings (rootHandler , defaultHandler , Map .of ()));
109+ assertThat (mapping ).satisfies (hasMappings (rootHandler , null , Map .of ()));
110110 }
111111
112112 @ Test
@@ -129,15 +129,22 @@ void unregisterUnknownHandler() {
129129 }
130130
131131
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+
134135 return actual -> {
135136 assertThat (actual .getRootHandler ()).isEqualTo (rootHandler );
136137 assertThat (actual .getDefaultHandler ()).isEqualTo (defaultHandler );
137138 assertThat (actual .getHandlerMap ()).containsExactlyEntriesOf (handlerMap );
138139 };
139140 }
140141
142+ private Object getHandlerForPath (String path ) throws Exception {
143+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , path );
144+ return mapping .getHandlerInternal (request );
145+ }
146+
147+
141148 private static class TestController {}
142149
143150}
0 commit comments