From 855684d5a20a569664ef735223a0715447b040c0 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 --- .../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 87250bae7ad7..6008bc5779ff 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 d92f610955cb..a33e5e517309 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 static MockMultipartHttpServletRequestBuilder multipart(String urlTemplat 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