diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java b/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java index 24415374835..5095053fb08 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java @@ -78,6 +78,7 @@ import org.springframework.web.util.UriTemplateHandler; * * @author Dave Syer * @author Phillip Webb + * @author Andy Wilkinson * @since 1.4.0 */ public class TestRestTemplate { @@ -172,7 +173,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand the template * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error on-client side HTTP error + * @throws RestClientException on client-side HTTP error on client-side HTTP error * @see RestTemplate#getForObject(String, Class, Object...) */ public T getForObject(String url, Class responseType, Object... urlVariables) @@ -190,7 +191,7 @@ public class TestRestTemplate { * @param urlVariables the map containing variables for the URI template * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#getForObject(String, Class, Object...) */ public T getForObject(String url, Class responseType, @@ -205,7 +206,7 @@ public class TestRestTemplate { * @param responseType the type of the return value * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#getForObject(java.net.URI, java.lang.Class) */ public T getForObject(URI url, Class responseType) throws RestClientException { @@ -222,7 +223,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand the template * @param the type of the return value * @return the entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#getForEntity(java.lang.String, java.lang.Class, * java.lang.Object[]) */ @@ -241,7 +242,7 @@ public class TestRestTemplate { * @param urlVariables the map containing variables for the URI template * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#getForEntity(java.lang.String, java.lang.Class, java.util.Map) */ public ResponseEntity getForEntity(String url, Class responseType, @@ -256,7 +257,7 @@ public class TestRestTemplate { * @param responseType the type of the return value * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#getForEntity(java.net.URI, java.lang.Class) */ public ResponseEntity getForEntity(URI url, Class responseType) @@ -271,7 +272,7 @@ public class TestRestTemplate { * @param url the URL * @param urlVariables the variables to expand the template * @return all HTTP headers of that resource - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#headForHeaders(java.lang.String, java.lang.Object[]) */ public HttpHeaders headForHeaders(String url, Object... urlVariables) @@ -286,7 +287,7 @@ public class TestRestTemplate { * @param url the URL * @param urlVariables the map containing variables for the URI template * @return all HTTP headers of that resource - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#headForHeaders(java.lang.String, java.util.Map) */ public HttpHeaders headForHeaders(String url, Map urlVariables) @@ -298,7 +299,7 @@ public class TestRestTemplate { * Retrieve all headers of the resource specified by the URL. * @param url the URL * @return all HTTP headers of that resource - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#headForHeaders(java.net.URI) */ public HttpHeaders headForHeaders(URI url) throws RestClientException { @@ -318,7 +319,7 @@ public class TestRestTemplate { * @param request the Object to be POSTed, may be {@code null} * @param urlVariables the variables to expand the template * @return the value for the {@code Location} header - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForLocation(java.lang.String, java.lang.Object, * java.lang.Object[]) @@ -341,7 +342,7 @@ public class TestRestTemplate { * @param request the Object to be POSTed, may be {@code null} * @param urlVariables the variables to expand the template * @return the value for the {@code Location} header - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForLocation(java.lang.String, java.lang.Object, * java.util.Map) @@ -361,7 +362,7 @@ public class TestRestTemplate { * @param url the URL * @param request the Object to be POSTed, may be {@code null} * @return the value for the {@code Location} header - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForLocation(java.net.URI, java.lang.Object) */ @@ -383,7 +384,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand the template * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForObject(java.lang.String, java.lang.Object, * java.lang.Class, java.lang.Object[]) @@ -407,7 +408,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand the template * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForObject(java.lang.String, java.lang.Object, * java.lang.Class, java.util.Map) @@ -428,7 +429,7 @@ public class TestRestTemplate { * @param responseType the type of the return value * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForObject(java.net.URI, java.lang.Object, java.lang.Class) */ @@ -451,7 +452,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand the template * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForEntity(java.lang.String, java.lang.Object, * java.lang.Class, java.lang.Object[]) @@ -475,7 +476,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand the template * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForEntity(java.lang.String, java.lang.Object, * java.lang.Class, java.util.Map) @@ -497,7 +498,7 @@ public class TestRestTemplate { * @param responseType the response type to return * @param the type of the return value * @return the converted object - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#postForEntity(java.net.URI, java.lang.Object, java.lang.Class) */ @@ -516,7 +517,7 @@ public class TestRestTemplate { * @param url the URL * @param request the Object to be PUT, may be {@code null} * @param urlVariables the variables to expand the template - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#put(java.lang.String, java.lang.Object, java.lang.Object[]) */ @@ -535,7 +536,7 @@ public class TestRestTemplate { * @param url the URL * @param request the Object to be PUT, may be {@code null} * @param urlVariables the variables to expand the template - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#put(java.lang.String, java.lang.Object, java.util.Map) */ @@ -551,7 +552,7 @@ public class TestRestTemplate { * additional HTTP headers to the request. * @param url the URL * @param request the Object to be PUT, may be {@code null} - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see HttpEntity * @see RestTemplate#put(java.net.URI, java.lang.Object) */ @@ -559,13 +560,80 @@ public class TestRestTemplate { this.restTemplate.put(url, request); } + /** + * Update a resource by PATCHing the given object to the URI template, and returns the + * representation found in the response. + *

+ * URI Template variables are expanded using the given URI variables, if any. + *

+ * The {@code request} parameter can be a {@link HttpEntity} in order to add + * additional HTTP headers to the request. + * @param url the URL + * @param request the Object to be PATCHed, may be {@code null} + * @param responseType the type of the return value + * @param uriVariables the variables to expand the template + * @param the type of the return value + * @return the converted object + * @throws RestClientException on client-side HTTP error + * @see HttpEntity + * @since 2.0 + */ + T patchForObject(String url, Object request, Class responseType, + Object... uriVariables) throws RestClientException { + return this.restTemplate.patchForObject(url, request, responseType, uriVariables); + } + + /** + * Update a resource by PATCHing the given object to the URI template, and returns the + * representation found in the response. + *

+ * URI Template variables are expanded using the given map. + *

+ * The {@code request} parameter can be a {@link HttpEntity} in order to add + * additional HTTP headers to the request. + * @param url the URL + * @param request the Object to be PATCHed, may be {@code null} + * @param responseType the type of the return value + * @param uriVariables the variables to expand the template + * @param the type of the return value + * @return the converted object + * @throws RestClientException on client-side HTTP error + * @see HttpEntity + * @since 2.0 + */ + T patchForObject(String url, Object request, Class responseType, + Map uriVariables) throws RestClientException { + return this.restTemplate.patchForObject(url, request, responseType, uriVariables); + } + + /** + * Update a resource by PATCHing the given object to the URL, and returns the + * representation found in the response. + *

+ * The {@code request} parameter can be a {@link HttpEntity} in order to add + * additional HTTP headers to the request. + * @param url the URL + * @param request the Object to be POSTed, may be {@code null} + * @param responseType the type of the return value + * @param the type of the return value + * @return the converted object + * @throws RestClientException on client-side HTTP error + * @see HttpEntity + * @since 2.0 + */ + T patchForObject(URI url, Object request, Class responseType) + throws RestClientException { + return this.restTemplate.patchForObject(url, request, responseType); + + } + /** * Delete the resources at the specified URI. *

* URI Template variables are expanded using the given URI variables, if any. * @param url the URL * @param urlVariables the variables to expand in the template - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#delete(java.lang.String, java.lang.Object[]) */ public void delete(String url, Object... urlVariables) throws RestClientException { @@ -578,7 +646,7 @@ public class TestRestTemplate { * URI Template variables are expanded using the given map. * @param url the URL * @param urlVariables the variables to expand the template - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#delete(java.lang.String, java.util.Map) */ public void delete(String url, Map urlVariables) @@ -589,7 +657,7 @@ public class TestRestTemplate { /** * Delete the resources at the specified URL. * @param url the URL - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#delete(java.net.URI) */ public void delete(URI url) throws RestClientException { @@ -603,7 +671,7 @@ public class TestRestTemplate { * @param url the URL * @param urlVariables the variables to expand in the template * @return the value of the allow header - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#optionsForAllow(java.lang.String, java.lang.Object[]) */ public Set optionsForAllow(String url, Object... urlVariables) @@ -618,7 +686,7 @@ public class TestRestTemplate { * @param url the URL * @param urlVariables the variables to expand in the template * @return the value of the allow header - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#optionsForAllow(java.lang.String, java.util.Map) */ public Set optionsForAllow(String url, Map urlVariables) @@ -630,7 +698,7 @@ public class TestRestTemplate { * Return the value of the Allow header for the given URL. * @param url the URL * @return the value of the allow header - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#optionsForAllow(java.net.URI) */ public Set optionsForAllow(URI url) throws RestClientException { @@ -650,7 +718,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand in the template * @param the type of the return value * @return the response as entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#exchange(java.lang.String, org.springframework.http.HttpMethod, * org.springframework.http.HttpEntity, java.lang.Class, java.lang.Object[]) */ @@ -674,7 +742,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand in the template * @param the type of the return value * @return the response as entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#exchange(java.lang.String, org.springframework.http.HttpMethod, * org.springframework.http.HttpEntity, java.lang.Class, java.util.Map) */ @@ -695,7 +763,7 @@ public class TestRestTemplate { * @param responseType the type of the return value * @param the type of the return value * @return the response as entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#exchange(java.net.URI, org.springframework.http.HttpMethod, * org.springframework.http.HttpEntity, java.lang.Class) */ @@ -721,7 +789,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand in the template * @param the type of the return value * @return the response as entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#exchange(java.lang.String, org.springframework.http.HttpMethod, * org.springframework.http.HttpEntity, * org.springframework.core.ParameterizedTypeReference, java.lang.Object[]) @@ -749,7 +817,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand in the template * @param the type of the return value * @return the response as entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#exchange(java.lang.String, org.springframework.http.HttpMethod, * org.springframework.http.HttpEntity, * org.springframework.core.ParameterizedTypeReference, java.util.Map) @@ -776,7 +844,7 @@ public class TestRestTemplate { * @param responseType the type of the return value * @param the type of the return value * @return the response as entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#exchange(java.net.URI, org.springframework.http.HttpMethod, * org.springframework.http.HttpEntity, * org.springframework.core.ParameterizedTypeReference) @@ -799,7 +867,7 @@ public class TestRestTemplate { * @param responseType the type of the return value * @param the type of the return value * @return the response as entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#exchange(org.springframework.http.RequestEntity, java.lang.Class) */ public ResponseEntity exchange(RequestEntity requestEntity, @@ -820,7 +888,7 @@ public class TestRestTemplate { * @param responseType the type of the return value * @param the type of the return value * @return the response as entity - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#exchange(org.springframework.http.RequestEntity, * org.springframework.core.ParameterizedTypeReference) */ @@ -841,7 +909,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand in the template * @param the type of the return value * @return an arbitrary object, as returned by the {@link ResponseExtractor} - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#execute(java.lang.String, org.springframework.http.HttpMethod, * org.springframework.web.client.RequestCallback, * org.springframework.web.client.ResponseExtractor, java.lang.Object[]) @@ -865,7 +933,7 @@ public class TestRestTemplate { * @param urlVariables the variables to expand in the template * @param the type of the return value * @return an arbitrary object, as returned by the {@link ResponseExtractor} - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#execute(java.lang.String, org.springframework.http.HttpMethod, * org.springframework.web.client.RequestCallback, * org.springframework.web.client.ResponseExtractor, java.util.Map) @@ -886,7 +954,7 @@ public class TestRestTemplate { * @param responseExtractor object that extracts the return value from the response * @param the type of the return value * @return an arbitrary object, as returned by the {@link ResponseExtractor} - * @throws RestClientException on-client side HTTP error + * @throws RestClientException on client-side HTTP error * @see RestTemplate#execute(java.net.URI, org.springframework.http.HttpMethod, * org.springframework.web.client.RequestCallback, * org.springframework.web.client.ResponseExtractor)