|
16 | 16 |
|
17 | 17 | package org.springframework.test.web.servlet.assertj;
|
18 | 18 |
|
| 19 | +import java.net.URI; |
19 | 20 | import java.util.LinkedHashMap;
|
20 | 21 | import java.util.List;
|
21 | 22 | import java.util.concurrent.atomic.AtomicInteger;
|
|
34 | 35 | import org.springframework.http.HttpStatus;
|
35 | 36 | import org.springframework.http.MediaType;
|
36 | 37 | import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
| 38 | +import org.springframework.lang.Nullable; |
37 | 39 | import org.springframework.mock.web.MockHttpServletRequest;
|
38 | 40 | import org.springframework.mock.web.MockServletContext;
|
39 | 41 | import org.springframework.test.json.AbstractJsonContentAssert;
|
@@ -148,61 +150,68 @@ void performWithUnresolvedExceptionSetsException() {
|
148 | 150 |
|
149 | 151 | @Test
|
150 | 152 | void getConfiguresBuilder() {
|
151 |
| - assertThat(createMockHttpServletRequest(tester -> tester.get().uri("/hello"))) |
152 |
| - .satisfies(hasSettings(HttpMethod.GET, "/hello")); |
| 153 | + assertThat(createMockHttpServletRequest(tester -> tester.get().uri("/hello/{id}", "world"))) |
| 154 | + .satisfies(hasSettings(HttpMethod.GET, "/hello/{id}", "/hello/world")); |
153 | 155 | }
|
154 | 156 |
|
155 | 157 | @Test
|
156 | 158 | void headConfiguresBuilder() {
|
157 |
| - assertThat(createMockHttpServletRequest(tester -> tester.head().uri("/download"))) |
158 |
| - .satisfies(hasSettings(HttpMethod.HEAD, "/download")); |
| 159 | + assertThat(createMockHttpServletRequest(tester -> tester.head().uri("/download/{file}", "test.json"))) |
| 160 | + .satisfies(hasSettings(HttpMethod.HEAD, "/download/{file}", "/download/test.json")); |
159 | 161 | }
|
160 | 162 |
|
161 | 163 | @Test
|
162 | 164 | void postConfiguresBuilder() {
|
163 |
| - assertThat(createMockHttpServletRequest(tester -> tester.post().uri("/save"))) |
164 |
| - .satisfies(hasSettings(HttpMethod.POST, "/save")); |
| 165 | + assertThat(createMockHttpServletRequest(tester -> tester.post().uri("/save/{id}", 123))) |
| 166 | + .satisfies(hasSettings(HttpMethod.POST, "/save/{id}", "/save/123")); |
165 | 167 | }
|
166 | 168 |
|
167 | 169 | @Test
|
168 | 170 | void putConfiguresBuilder() {
|
169 |
| - assertThat(createMockHttpServletRequest(tester -> tester.put().uri("/save"))) |
170 |
| - .satisfies(hasSettings(HttpMethod.PUT, "/save")); |
| 171 | + assertThat(createMockHttpServletRequest(tester -> tester.put().uri("/save/{id}", 123))) |
| 172 | + .satisfies(hasSettings(HttpMethod.PUT, "/save/{id}", "/save/123")); |
171 | 173 | }
|
172 | 174 |
|
173 | 175 | @Test
|
174 | 176 | void patchConfiguresBuilder() {
|
175 |
| - assertThat(createMockHttpServletRequest(tester -> tester.patch().uri("/update"))) |
176 |
| - .satisfies(hasSettings(HttpMethod.PATCH, "/update")); |
| 177 | + assertThat(createMockHttpServletRequest(tester -> tester.patch().uri("/update/{id}", 123))) |
| 178 | + .satisfies(hasSettings(HttpMethod.PATCH, "/update/{id}", "/update/123")); |
177 | 179 | }
|
178 | 180 |
|
179 | 181 | @Test
|
180 | 182 | void deleteConfiguresBuilder() {
|
181 |
| - assertThat(createMockHttpServletRequest(tester -> tester.delete().uri("/users/42"))) |
182 |
| - .satisfies(hasSettings(HttpMethod.DELETE, "/users/42")); |
| 183 | + assertThat(createMockHttpServletRequest(tester -> tester.delete().uri("/users/{id}", 42))) |
| 184 | + .satisfies(hasSettings(HttpMethod.DELETE, "/users/{id}", "/users/42")); |
183 | 185 | }
|
184 | 186 |
|
185 | 187 | @Test
|
186 | 188 | void optionsConfiguresBuilder() {
|
187 |
| - assertThat(createMockHttpServletRequest(tester -> tester.options().uri("/users"))) |
188 |
| - .satisfies(hasSettings(HttpMethod.OPTIONS, "/users")); |
| 189 | + assertThat(createMockHttpServletRequest(tester -> tester.options().uri("/users/{id}", 42))) |
| 190 | + .satisfies(hasSettings(HttpMethod.OPTIONS, "/users/{id}", "/users/42")); |
189 | 191 | }
|
190 | 192 |
|
191 | 193 | @Test
|
192 | 194 | void methodConfiguresBuilderWithCustomMethod() {
|
193 | 195 | HttpMethod customMethod = HttpMethod.valueOf("CUSTOM");
|
194 | 196 | assertThat(createMockHttpServletRequest(tester -> tester.method(customMethod).uri("/hello")))
|
195 |
| - .satisfies(hasSettings(customMethod, "/hello")); |
| 197 | + .satisfies(hasSettings(customMethod, "/hello", "/hello")); |
| 198 | + } |
| 199 | + |
| 200 | + @Test |
| 201 | + void methodConfiguresBuilderWithFullURI() { |
| 202 | + assertThat(createMockHttpServletRequest(tester -> tester.get().uri(URI.create("/hello/world")))) |
| 203 | + .satisfies(hasSettings(HttpMethod.GET, null, "/hello/world")); |
196 | 204 | }
|
197 | 205 |
|
198 | 206 | private MockHttpServletRequest createMockHttpServletRequest(Function<MockMvcTester, MockMvcRequestBuilder> builder) {
|
199 | 207 | MockMvcTester mockMvcTester = MockMvcTester.of(HelloController.class);
|
200 | 208 | return builder.apply(mockMvcTester).buildRequest(this.servletContext);
|
201 | 209 | }
|
202 | 210 |
|
203 |
| - private Consumer<MockHttpServletRequest> hasSettings(HttpMethod method, String uri) { |
| 211 | + private Consumer<MockHttpServletRequest> hasSettings(HttpMethod method, @Nullable String uriTemplate, String uri) { |
204 | 212 | return request -> {
|
205 | 213 | assertThat(request.getMethod()).isEqualTo(method.name());
|
| 214 | + assertThat(request.getUriTemplate()).isEqualTo(uriTemplate); |
206 | 215 | assertThat(request.getRequestURI()).isEqualTo(uri);
|
207 | 216 | };
|
208 | 217 | }
|
|
0 commit comments