Skip to content

Commit f6504c5

Browse files
committed
Deprecate use of raw String for HttpMethod in MockMvc
Closes gh-32914
1 parent 8871d67 commit f6504c5

File tree

3 files changed

+9
-16
lines changed

3 files changed

+9
-16
lines changed

spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java

+3-13
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
public class MockHttpServletRequestBuilder
8787
implements ConfigurableSmartRequestBuilder<MockHttpServletRequestBuilder>, Mergeable {
8888

89-
private final String method;
89+
private final HttpMethod method;
9090

9191
private final URI url;
9292

@@ -150,7 +150,7 @@ public class MockHttpServletRequestBuilder
150150
* @param vars zero or more URI variables
151151
*/
152152
MockHttpServletRequestBuilder(HttpMethod httpMethod, String url, Object... vars) {
153-
this(httpMethod.name(), initUri(url, vars));
153+
this(httpMethod, initUri(url, vars));
154154
}
155155

156156
private static URI initUri(String url, Object[] vars) {
@@ -169,16 +169,6 @@ private static URI initUri(String url, Object[] vars) {
169169
* @since 4.0.3
170170
*/
171171
MockHttpServletRequestBuilder(HttpMethod httpMethod, URI url) {
172-
this(httpMethod.name(), url);
173-
}
174-
175-
/**
176-
* Alternative constructor for custom HTTP methods.
177-
* @param httpMethod the HTTP method (GET, POST, etc)
178-
* @param url the URL
179-
* @since 4.3
180-
*/
181-
MockHttpServletRequestBuilder(String httpMethod, URI url) {
182172
Assert.notNull(httpMethod, "'httpMethod' is required");
183173
Assert.notNull(url, "'url' is required");
184174
this.method = httpMethod;
@@ -716,7 +706,7 @@ public final MockHttpServletRequest buildRequest(ServletContext servletContext)
716706
MockHttpServletRequest request = createServletRequest(servletContext);
717707

718708
request.setAsyncSupported(true);
719-
request.setMethod(this.method);
709+
request.setMethod(this.method.name());
720710

721711
String requestUri = this.url.getRawPath();
722712
request.setRequestURI(requestUri);

spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2024 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.
@@ -199,9 +199,11 @@ public static MockHttpServletRequestBuilder request(HttpMethod httpMethod, URI u
199199
* @param httpMethod the HTTP method
200200
* @param uri the URL
201201
* @since 4.3
202+
* @deprecated in favor of {@link #request(HttpMethod, URI)}
202203
*/
204+
@Deprecated(since = "6.2")
203205
public static MockHttpServletRequestBuilder request(String httpMethod, URI uri) {
204-
return new MockHttpServletRequestBuilder(httpMethod, uri);
206+
return request(HttpMethod.valueOf(httpMethod), uri);
205207
}
206208

207209
/**

spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.junit.jupiter.api.Test;
3434

3535
import org.springframework.http.HttpHeaders;
36+
import org.springframework.http.HttpMethod;
3637
import org.springframework.http.MediaType;
3738
import org.springframework.mock.web.MockHttpServletRequest;
3839
import org.springframework.mock.web.MockHttpSession;
@@ -650,7 +651,7 @@ void mergeInvokesDefaultRequestPostProcessorFirst() {
650651
void arbitraryMethod() {
651652
String httpMethod = "REPort";
652653
URI url = UriComponentsBuilder.fromPath("/foo/{bar}").buildAndExpand(42).toUri();
653-
this.builder = new MockHttpServletRequestBuilder(httpMethod, url);
654+
this.builder = new MockHttpServletRequestBuilder(HttpMethod.valueOf(httpMethod), url);
654655
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
655656

656657
assertThat(request.getMethod()).isEqualTo(httpMethod);

0 commit comments

Comments
 (0)