ResponseEntityResponseExtractor tolerates unknown HTTP status codes
Issue: SPR-16371
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -49,7 +49,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.BDDMockito.*;
|
||||
import static org.springframework.http.HttpMethod.POST;
|
||||
import static org.springframework.http.HttpMethod.*;
|
||||
import static org.springframework.http.MediaType.*;
|
||||
|
||||
/**
|
||||
@@ -80,7 +80,7 @@ public class RestTemplateTests {
|
||||
response = mock(ClientHttpResponse.class);
|
||||
errorHandler = mock(ResponseErrorHandler.class);
|
||||
converter = mock(HttpMessageConverter.class);
|
||||
template = new RestTemplate(Collections.<HttpMessageConverter<?>>singletonList(converter));
|
||||
template = new RestTemplate(Collections.singletonList(converter));
|
||||
template.setRequestFactory(requestFactory);
|
||||
template.setErrorHandler(errorHandler);
|
||||
}
|
||||
@@ -88,7 +88,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void varArgsTemplateVariables() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com/hotels/42/bookings/21"), HttpMethod.GET))
|
||||
given(requestFactory.createRequest(new URI("http://example.com/hotels/42/bookings/21"), GET))
|
||||
.willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(false);
|
||||
@@ -96,7 +96,7 @@ public class RestTemplateTests {
|
||||
given(response.getStatusCode()).willReturn(status);
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
template.execute("http://example.com/hotels/{hotel}/bookings/{booking}", HttpMethod.GET, null, null, "42",
|
||||
template.execute("http://example.com/hotels/{hotel}/bookings/{booking}", GET, null, null, "42",
|
||||
"21");
|
||||
|
||||
verify(response).close();
|
||||
@@ -104,7 +104,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void varArgsNullTemplateVariable() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com/-foo"), HttpMethod.GET))
|
||||
given(requestFactory.createRequest(new URI("http://example.com/-foo"), GET))
|
||||
.willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(false);
|
||||
@@ -112,14 +112,14 @@ public class RestTemplateTests {
|
||||
given(response.getStatusCode()).willReturn(status);
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
template.execute("http://example.com/{first}-{last}", HttpMethod.GET, null, null, null, "foo");
|
||||
template.execute("http://example.com/{first}-{last}", GET, null, null, null, "foo");
|
||||
|
||||
verify(response).close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mapTemplateVariables() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com/hotels/42/bookings/42"), HttpMethod.GET))
|
||||
given(requestFactory.createRequest(new URI("http://example.com/hotels/42/bookings/42"), GET))
|
||||
.willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(false);
|
||||
@@ -128,14 +128,14 @@ public class RestTemplateTests {
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
Map<String, String> vars = Collections.singletonMap("hotel", "42");
|
||||
template.execute("http://example.com/hotels/{hotel}/bookings/{hotel}", HttpMethod.GET, null, null, vars);
|
||||
template.execute("http://example.com/hotels/{hotel}/bookings/{hotel}", GET, null, null, vars);
|
||||
|
||||
verify(response).close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mapNullTemplateVariable() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com/-foo"), HttpMethod.GET))
|
||||
given(requestFactory.createRequest(new URI("http://example.com/-foo"), GET))
|
||||
.willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(false);
|
||||
@@ -146,7 +146,7 @@ public class RestTemplateTests {
|
||||
Map<String, String> vars = new HashMap<>(2);
|
||||
vars.put("first", null);
|
||||
vars.put("last", "foo");
|
||||
template.execute("http://example.com/{first}-{last}", HttpMethod.GET, null, null, vars);
|
||||
template.execute("http://example.com/{first}-{last}", GET, null, null, vars);
|
||||
|
||||
verify(response).close();
|
||||
}
|
||||
@@ -154,21 +154,22 @@ public class RestTemplateTests {
|
||||
@Test // SPR-15201
|
||||
public void uriTemplateWithTrailingSlash() throws Exception {
|
||||
String url = "http://example.com/spring/";
|
||||
given(requestFactory.createRequest(new URI(url), HttpMethod.GET)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI(url), GET)).willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(false);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
given(response.getStatusCode()).willReturn(status);
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
template.execute(url, HttpMethod.GET, null, null);
|
||||
template.execute(url, GET, null, null);
|
||||
|
||||
verify(response).close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void errorHandling() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET)).willReturn(request);
|
||||
URI uri = new URI("http://example.com");
|
||||
given(requestFactory.createRequest(uri, GET)).willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(true);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
@@ -176,7 +177,7 @@ public class RestTemplateTests {
|
||||
willThrow(new HttpServerErrorException(HttpStatus.INTERNAL_SERVER_ERROR)).given(errorHandler).handleError(response);
|
||||
|
||||
try {
|
||||
template.execute("http://example.com", HttpMethod.GET, null, null);
|
||||
template.execute("http://example.com", GET, null, null);
|
||||
fail("HttpServerErrorException expected");
|
||||
}
|
||||
catch (HttpServerErrorException ex) {
|
||||
@@ -191,7 +192,7 @@ public class RestTemplateTests {
|
||||
given(converter.canRead(String.class, null)).willReturn(true);
|
||||
MediaType textPlain = new MediaType("text", "plain");
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(textPlain));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), GET)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -221,7 +222,7 @@ public class RestTemplateTests {
|
||||
given(converter.canRead(String.class, null)).willReturn(true);
|
||||
MediaType supportedMediaType = new MediaType("foo", "bar");
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(supportedMediaType));
|
||||
given(requestFactory.createRequest(new URI("http://example.com/resource"), HttpMethod.GET)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com/resource"), GET)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -255,7 +256,7 @@ public class RestTemplateTests {
|
||||
given(converter.canRead(String.class, null)).willReturn(true);
|
||||
MediaType textPlain = new MediaType("text", "plain");
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(textPlain));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), GET)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -264,15 +265,12 @@ public class RestTemplateTests {
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
responseHeaders.setContentType(textPlain);
|
||||
responseHeaders.setContentLength(10);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(response.getRawStatusCode()).willReturn(HttpStatus.OK.value());
|
||||
given(response.getStatusText()).willReturn(HttpStatus.OK.getReasonPhrase());
|
||||
given(response.getHeaders()).willReturn(responseHeaders);
|
||||
given(response.getBody()).willReturn(new ByteArrayInputStream(expected.getBytes()));
|
||||
given(converter.canRead(String.class, textPlain)).willReturn(true);
|
||||
given(converter.read(eq(String.class), any(HttpInputMessage.class))).willReturn(expected);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
given(response.getStatusCode()).willReturn(status);
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
ResponseEntity<String> result = template.getForEntity("http://example.com", String.class);
|
||||
assertEquals("Invalid GET result", expected, result.getBody());
|
||||
@@ -290,7 +288,7 @@ public class RestTemplateTests {
|
||||
template.setUriTemplateHandler(uriTemplateHandler);
|
||||
|
||||
URI expectedUri = new URI("http://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150");
|
||||
given(requestFactory.createRequest(expectedUri, HttpMethod.GET)).willReturn(request);
|
||||
given(requestFactory.createRequest(expectedUri, GET)).willReturn(request);
|
||||
|
||||
given(request.getHeaders()).willReturn(new HttpHeaders());
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -313,7 +311,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void headForHeaders() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.HEAD)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HEAD)).willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(false);
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
@@ -331,7 +329,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void postForLocation() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
String helloWorld = "Hello World";
|
||||
given(converter.canWrite(String.class, null)).willReturn(true);
|
||||
converter.write(helloWorld, null, request);
|
||||
@@ -353,7 +351,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void postForLocationEntityContentType() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
String helloWorld = "Hello World";
|
||||
MediaType contentType = MediaType.TEXT_PLAIN;
|
||||
given(converter.canWrite(String.class, contentType)).willReturn(true);
|
||||
@@ -382,7 +380,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void postForLocationEntityCustomHeader() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
String helloWorld = "Hello World";
|
||||
given(converter.canWrite(String.class, null)).willReturn(true);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
@@ -411,7 +409,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void postForLocationNoLocation() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
String helloWorld = "Hello World";
|
||||
given(converter.canWrite(String.class, null)).willReturn(true);
|
||||
converter.write(helloWorld, null, request);
|
||||
@@ -431,7 +429,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void postForLocationNull() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -453,7 +451,7 @@ public class RestTemplateTests {
|
||||
MediaType textPlain = new MediaType("text", "plain");
|
||||
given(converter.canRead(Integer.class, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(textPlain));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(this.request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(this.request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(this.request.getHeaders()).willReturn(requestHeaders);
|
||||
String request = "Hello World";
|
||||
@@ -486,7 +484,7 @@ public class RestTemplateTests {
|
||||
MediaType textPlain = new MediaType("text", "plain");
|
||||
given(converter.canRead(Integer.class, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(textPlain));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(this.request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(this.request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(this.request.getHeaders()).willReturn(requestHeaders);
|
||||
String request = "Hello World";
|
||||
@@ -498,15 +496,12 @@ public class RestTemplateTests {
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
responseHeaders.setContentType(textPlain);
|
||||
responseHeaders.setContentLength(10);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(response.getRawStatusCode()).willReturn(HttpStatus.OK.value());
|
||||
given(response.getStatusText()).willReturn(HttpStatus.OK.getReasonPhrase());
|
||||
given(response.getHeaders()).willReturn(responseHeaders);
|
||||
given(response.getBody()).willReturn(new ByteArrayInputStream(expected.toString().getBytes()));
|
||||
given(converter.canRead(Integer.class, textPlain)).willReturn(true);
|
||||
given(converter.read(eq(Integer.class), any(HttpInputMessage.class))).willReturn(expected);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
given(response.getStatusCode()).willReturn(status);
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
ResponseEntity<Integer> result = template.postForEntity("http://example.com", request, Integer.class);
|
||||
assertEquals("Invalid POST result", expected, result.getBody());
|
||||
@@ -522,7 +517,7 @@ public class RestTemplateTests {
|
||||
MediaType textPlain = new MediaType("text", "plain");
|
||||
given(converter.canRead(Integer.class, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(textPlain));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -530,8 +525,8 @@ public class RestTemplateTests {
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
responseHeaders.setContentType(textPlain);
|
||||
responseHeaders.setContentLength(10);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(response.getHeaders()).willReturn(responseHeaders);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(converter.canRead(Integer.class, textPlain)).willReturn(true);
|
||||
given(converter.read(Integer.class, response)).willReturn(null);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
@@ -550,7 +545,7 @@ public class RestTemplateTests {
|
||||
MediaType textPlain = new MediaType("text", "plain");
|
||||
given(converter.canRead(Integer.class, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(textPlain));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -558,14 +553,11 @@ public class RestTemplateTests {
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
responseHeaders.setContentType(textPlain);
|
||||
responseHeaders.setContentLength(10);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(response.getHeaders()).willReturn(responseHeaders);
|
||||
given(response.getRawStatusCode()).willReturn(HttpStatus.OK.value());
|
||||
given(response.getStatusText()).willReturn(HttpStatus.OK.getReasonPhrase());
|
||||
given(converter.canRead(Integer.class, textPlain)).willReturn(true);
|
||||
given(converter.read(Integer.class, response)).willReturn(null);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
given(response.getStatusCode()).willReturn(status);
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
ResponseEntity<Integer> result = template.postForEntity("http://example.com", null, Integer.class);
|
||||
assertFalse("Invalid POST result", result.hasBody());
|
||||
@@ -579,7 +571,7 @@ public class RestTemplateTests {
|
||||
@Test
|
||||
public void put() throws Exception {
|
||||
given(converter.canWrite(String.class, null)).willReturn(true);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.PUT)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), PUT)).willReturn(request);
|
||||
String helloWorld = "Hello World";
|
||||
converter.write(helloWorld, null, request);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -595,7 +587,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void putNull() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.PUT)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), PUT)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -615,7 +607,7 @@ public class RestTemplateTests {
|
||||
MediaType textPlain = new MediaType("text", "plain");
|
||||
given(converter.canRead(Integer.class, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(textPlain));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.PATCH)).willReturn(this.request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), PATCH)).willReturn(this.request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(this.request.getHeaders()).willReturn(requestHeaders);
|
||||
String request = "Hello World";
|
||||
@@ -648,7 +640,7 @@ public class RestTemplateTests {
|
||||
MediaType textPlain = new MediaType("text", "plain");
|
||||
given(converter.canRead(Integer.class, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(textPlain));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.PATCH)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), PATCH)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -656,8 +648,8 @@ public class RestTemplateTests {
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
responseHeaders.setContentType(textPlain);
|
||||
responseHeaders.setContentLength(10);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(response.getHeaders()).willReturn(responseHeaders);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(converter.canRead(Integer.class, textPlain)).willReturn(true);
|
||||
given(converter.read(Integer.class, response)).willReturn(null);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
@@ -675,7 +667,7 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void delete() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.DELETE)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), DELETE)).willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(false);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
@@ -689,11 +681,11 @@ public class RestTemplateTests {
|
||||
|
||||
@Test
|
||||
public void optionsForAllow() throws Exception {
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.OPTIONS)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), OPTIONS)).willReturn(request);
|
||||
given(request.execute()).willReturn(response);
|
||||
given(errorHandler.hasError(response)).willReturn(false);
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
EnumSet<HttpMethod> expected = EnumSet.of(HttpMethod.GET, HttpMethod.POST);
|
||||
EnumSet<HttpMethod> expected = EnumSet.of(GET, POST);
|
||||
responseHeaders.setAllow(expected);
|
||||
given(response.getHeaders()).willReturn(responseHeaders);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
@@ -713,7 +705,7 @@ public class RestTemplateTests {
|
||||
given(converter.canRead(String.class, null)).willReturn(true);
|
||||
MediaType mediaType = new MediaType("foo", "bar");
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(mediaType));
|
||||
given(requestFactory.createRequest(new URI(url), HttpMethod.GET)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI(url), GET)).willReturn(request);
|
||||
given(request.getHeaders()).willReturn(new HttpHeaders());
|
||||
given(request.execute()).willThrow(new IOException("Socket failure"));
|
||||
|
||||
@@ -723,7 +715,7 @@ public class RestTemplateTests {
|
||||
}
|
||||
catch (ResourceAccessException ex) {
|
||||
assertEquals("I/O error on GET request for \"http://example.com/resource\": " +
|
||||
"Socket failure; nested exception is java.io.IOException: Socket failure",
|
||||
"Socket failure; nested exception is java.io.IOException: Socket failure",
|
||||
ex.getMessage());
|
||||
}
|
||||
}
|
||||
@@ -736,7 +728,7 @@ public class RestTemplateTests {
|
||||
|
||||
given(converter.canRead(String.class, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(parseMediaType("foo/bar")));
|
||||
given(requestFactory.createRequest(uri, HttpMethod.GET)).willReturn(request);
|
||||
given(requestFactory.createRequest(uri, GET)).willReturn(request);
|
||||
given(request.getHeaders()).willReturn(new HttpHeaders());
|
||||
given(request.execute()).willThrow(new IOException("Socket failure"));
|
||||
|
||||
@@ -746,7 +738,7 @@ public class RestTemplateTests {
|
||||
}
|
||||
catch (ResourceAccessException ex) {
|
||||
assertEquals("I/O error on GET request for \"http://example.com/resource\": " +
|
||||
"Socket failure; nested exception is java.io.IOException: Socket failure",
|
||||
"Socket failure; nested exception is java.io.IOException: Socket failure",
|
||||
ex.getMessage());
|
||||
}
|
||||
}
|
||||
@@ -755,7 +747,7 @@ public class RestTemplateTests {
|
||||
public void exchange() throws Exception {
|
||||
given(converter.canRead(Integer.class, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(this.request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(this.request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(this.request.getHeaders()).willReturn(requestHeaders);
|
||||
given(converter.canWrite(String.class, null)).willReturn(true);
|
||||
@@ -767,21 +759,18 @@ public class RestTemplateTests {
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
responseHeaders.setContentType(MediaType.TEXT_PLAIN);
|
||||
responseHeaders.setContentLength(10);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(response.getRawStatusCode()).willReturn(HttpStatus.OK.value());
|
||||
given(response.getStatusText()).willReturn(HttpStatus.OK.getReasonPhrase());
|
||||
given(response.getHeaders()).willReturn(responseHeaders);
|
||||
given(response.getBody()).willReturn(new ByteArrayInputStream(expected.toString().getBytes()));
|
||||
given(converter.canRead(Integer.class, MediaType.TEXT_PLAIN)).willReturn(true);
|
||||
given(converter.read(Integer.class, response)).willReturn(expected);
|
||||
given(converter.read(eq(Integer.class), any(HttpInputMessage.class))).willReturn(expected);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
given(response.getStatusCode()).willReturn(status);
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
HttpHeaders entityHeaders = new HttpHeaders();
|
||||
entityHeaders.set("MyHeader", "MyValue");
|
||||
HttpEntity<String> requestEntity = new HttpEntity<>(body, entityHeaders);
|
||||
ResponseEntity<Integer> result = template.exchange("http://example.com", HttpMethod.POST, requestEntity, Integer.class);
|
||||
HttpEntity<String> entity = new HttpEntity<>(body, entityHeaders);
|
||||
ResponseEntity<Integer> result = template.exchange("http://example.com", POST, entity, Integer.class);
|
||||
assertEquals("Invalid POST result", expected, result.getBody());
|
||||
assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType());
|
||||
assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept"));
|
||||
@@ -800,7 +789,7 @@ public class RestTemplateTests {
|
||||
ParameterizedTypeReference<List<Integer>> intList = new ParameterizedTypeReference<List<Integer>>() {};
|
||||
given(converter.canRead(intList.getType(), null, null)).willReturn(true);
|
||||
given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(this.request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(this.request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(this.request.getHeaders()).willReturn(requestHeaders);
|
||||
given(converter.canWrite(String.class, String.class, null)).willReturn(true);
|
||||
@@ -812,20 +801,17 @@ public class RestTemplateTests {
|
||||
HttpHeaders responseHeaders = new HttpHeaders();
|
||||
responseHeaders.setContentType(MediaType.TEXT_PLAIN);
|
||||
responseHeaders.setContentLength(10);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
given(response.getRawStatusCode()).willReturn(HttpStatus.OK.value());
|
||||
given(response.getStatusText()).willReturn(HttpStatus.OK.getReasonPhrase());
|
||||
given(response.getHeaders()).willReturn(responseHeaders);
|
||||
given(response.getBody()).willReturn(new ByteArrayInputStream(Integer.toString(42).getBytes()));
|
||||
given(converter.canRead(intList.getType(), null, MediaType.TEXT_PLAIN)).willReturn(true);
|
||||
given(converter.read(eq(intList.getType()), eq(null), any(HttpInputMessage.class))).willReturn(expected);
|
||||
given(response.getStatusCode()).willReturn(HttpStatus.OK);
|
||||
HttpStatus status = HttpStatus.OK;
|
||||
given(response.getStatusCode()).willReturn(status);
|
||||
given(response.getStatusText()).willReturn(status.getReasonPhrase());
|
||||
|
||||
HttpHeaders entityHeaders = new HttpHeaders();
|
||||
entityHeaders.set("MyHeader", "MyValue");
|
||||
HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, entityHeaders);
|
||||
ResponseEntity<List<Integer>> result = template.exchange("http://example.com", HttpMethod.POST, requestEntity, intList);
|
||||
ResponseEntity<List<Integer>> result = template.exchange("http://example.com", POST, requestEntity, intList);
|
||||
assertEquals("Invalid POST result", expected, result.getBody());
|
||||
assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType());
|
||||
assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept"));
|
||||
@@ -843,7 +829,7 @@ public class RestTemplateTests {
|
||||
};
|
||||
template.setInterceptors(Collections.singletonList(interceptor));
|
||||
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
given(request.execute()).willReturn(response);
|
||||
@@ -855,7 +841,7 @@ public class RestTemplateTests {
|
||||
HttpHeaders entityHeaders = new HttpHeaders();
|
||||
entityHeaders.add("MyHeader", "MyEntityValue");
|
||||
HttpEntity<Void> entity = new HttpEntity<>(null, entityHeaders);
|
||||
template.exchange("http://example.com", HttpMethod.POST, entity, Void.class);
|
||||
template.exchange("http://example.com", POST, entity, Void.class);
|
||||
assertThat(requestHeaders.get("MyHeader"), contains("MyEntityValue", "MyInterceptorValue"));
|
||||
|
||||
verify(response).close();
|
||||
@@ -871,7 +857,7 @@ public class RestTemplateTests {
|
||||
|
||||
MediaType contentType = MediaType.TEXT_PLAIN;
|
||||
given(converter.canWrite(String.class, contentType)).willReturn(true);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), HttpMethod.POST)).willReturn(request);
|
||||
given(requestFactory.createRequest(new URI("http://example.com"), POST)).willReturn(request);
|
||||
String helloWorld = "Hello World";
|
||||
HttpHeaders requestHeaders = new HttpHeaders();
|
||||
given(request.getHeaders()).willReturn(requestHeaders);
|
||||
@@ -886,7 +872,7 @@ public class RestTemplateTests {
|
||||
entityHeaders.setContentType(contentType);
|
||||
entityHeaders.add("MyHeader", "MyEntityValue");
|
||||
HttpEntity<String> entity = new HttpEntity<>(helloWorld, entityHeaders);
|
||||
template.exchange("http://example.com", HttpMethod.POST, entity, Void.class);
|
||||
template.exchange("http://example.com", POST, entity, Void.class);
|
||||
assertThat(requestHeaders.get("MyHeader"), contains("MyEntityValue", "MyInterceptorValue"));
|
||||
|
||||
verify(response).close();
|
||||
|
||||
Reference in New Issue
Block a user