From 9b93508374ff3f99e4cd5fa1e21bc08bb3ae8db7 Mon Sep 17 00:00:00 2001 From: Johnny Lim Date: Wed, 15 Jun 2022 20:30:23 +0900 Subject: [PATCH] Add MockMvcRequestBuilders.multipart(HttpMethod, String, Object...) See gh-28545 Closes gh-28631 --- .../MockMultipartHttpServletRequestBuilder.java | 9 ++++++--- .../web/servlet/request/MockMvcRequestBuilders.java | 11 +++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMultipartHttpServletRequestBuilder.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMultipartHttpServletRequestBuilder.java index 3f2b59909b..b6aa5cb0e3 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMultipartHttpServletRequestBuilder.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMultipartHttpServletRequestBuilder.java @@ -64,7 +64,11 @@ public class MockMultipartHttpServletRequestBuilder extends MockHttpServletReque * @param uriVariables zero or more URI variables */ MockMultipartHttpServletRequestBuilder(String urlTemplate, Object... uriVariables) { - super(HttpMethod.POST, urlTemplate, uriVariables); + this(HttpMethod.POST, urlTemplate, uriVariables); + } + + MockMultipartHttpServletRequestBuilder(HttpMethod httpMethod, String urlTemplate, Object... uriVariables) { + super(httpMethod, urlTemplate, uriVariables); super.contentType(MediaType.MULTIPART_FORM_DATA); } @@ -74,8 +78,7 @@ public class MockMultipartHttpServletRequestBuilder extends MockHttpServletReque * @since 4.0.3 */ MockMultipartHttpServletRequestBuilder(URI uri) { - super(HttpMethod.POST, uri); - super.contentType(MediaType.MULTIPART_FORM_DATA); + this(HttpMethod.POST, uri); } /** diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java index 7334028daa..94d78b5b20 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java @@ -214,6 +214,17 @@ public abstract class MockMvcRequestBuilders { return new MockMultipartHttpServletRequestBuilder(urlTemplate, uriVars); } + /** + * Create a {@link MockMultipartHttpServletRequestBuilder} for a multipart request. + * @param httpMethod the HTTP method to use + * @param urlTemplate a URL template; the resulting URL will be encoded + * @param uriVars zero or more URI variables + * @since 5.3.22 + */ + public static MockMultipartHttpServletRequestBuilder multipart(HttpMethod httpMethod, String urlTemplate, Object... uriVars) { + return new MockMultipartHttpServletRequestBuilder(httpMethod, urlTemplate, uriVars); + } + /** * Variant of {@link #multipart(String, Object...)} with a {@link URI}. * @param uri the URL