diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java index bb0c109a099..7b51604f3a9 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java @@ -28,21 +28,18 @@ import org.springframework.util.ReflectionUtils; /** * Static factory methods for {@link RequestBuilder}s. * - *

Eclipse users: consider adding this class as a Java + *

Eclipse users: Consider adding this class as a Java * editor favorite. To navigate, open the Preferences and type "favorites". * * @author Arjen Poutsma * @author Rossen Stoyanchev + * @author Greg Turnquist * @since 3.2 */ public abstract class MockMvcRequestBuilders { - private MockMvcRequestBuilders() { - } - /** * Create a {@link MockHttpServletRequestBuilder} for a GET request. - * * @param urlTemplate a URL template; the resulting URL will be encoded * @param urlVariables zero or more URL variables */ @@ -52,7 +49,6 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a POST request. - * * @param urlTemplate a URL template; the resulting URL will be encoded * @param urlVariables zero or more URL variables */ @@ -62,7 +58,6 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a PUT request. - * * @param urlTemplate a URL template; the resulting URL will be encoded * @param urlVariables zero or more URL variables */ @@ -70,9 +65,17 @@ public abstract class MockMvcRequestBuilders { return new MockHttpServletRequestBuilder(HttpMethod.PUT, urlTemplate, urlVariables); } + /** + * Create a {@link MockHttpServletRequestBuilder} for a PATCH request. + * @param urlTemplate a URL template; the resulting URL will be encoded + * @param urlVariables zero or more URL variables + */ + public static MockHttpServletRequestBuilder patch(String urlTemplate, Object... urlVariables) { + return new MockHttpServletRequestBuilder(HttpMethod.PATCH, urlTemplate, urlVariables); + } + /** * Create a {@link MockHttpServletRequestBuilder} for a DELETE request. - * * @param urlTemplate a URL template; the resulting URL will be encoded * @param urlVariables zero or more URL variables */ @@ -82,7 +85,6 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for an OPTIONS request. - * * @param urlTemplate a URL template; the resulting URL will be encoded * @param urlVariables zero or more URL variables */ @@ -93,7 +95,6 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a request with the given HTTP method. - * * @param httpMethod the HTTP method * @param urlTemplate a URL template; the resulting URL will be encoded * @param urlVariables zero or more URL variables @@ -104,7 +105,6 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link MockHttpServletRequestBuilder} for a multipart request. - * * @param urlTemplate a URL template; the resulting URL will be encoded * @param urlVariables zero or more URL variables */ @@ -115,22 +115,19 @@ public abstract class MockMvcRequestBuilders { /** * Create a {@link RequestBuilder} for an async dispatch from the * {@link MvcResult} of the request that started async processing. - * *

Usage involves performing one request first that starts async processing: - *

+	 * 
 	 * MvcResult mvcResult = this.mockMvc.perform(get("/1"))
 	 *	.andExpect(request().asyncStarted())
 	 *	.andReturn();
 	 *  
- * *

And then performing the async dispatch re-using the {@code MvcResult}: - *

+	 * 
 	 * this.mockMvc.perform(asyncDispatch(mvcResult))
 	 * 	.andExpect(status().isOk())
 	 * 	.andExpect(content().contentType(MediaType.APPLICATION_JSON))
 	 * 	.andExpect(content().string("{\"name\":\"Joe\",\"someDouble\":0.0,\"someBoolean\":false}"));
 	 * 
- * * @param mvcResult the result from the request that started async processing */ public static RequestBuilder asyncDispatch(final MvcResult mvcResult) {