Fix complexity for DefaultHttpHeaderMapper (#2881)
* Fix complexity for DefaultHttpHeaderMapper * Deprecate `DefaultHttpHeaderMapper` constants which are fully Spring Web `HttpHeaders` constants * Introduce lowercase constants for `getHttpHeader()` switch * Reuse `HttpHeaders` API as much as possible * Simplify logic in some methods to break them to smaller methods * * Remove Java Streams from critical paths * Rework `setHttpHeader()` for `switch` * * Use `ObjectUtils.toObjectArray()` to simplify complexity * * Fix complexity in `setAccept()`, `setAcceptCharset()`, `setAllow()` & `setIfNoneMatch()` using newly extracted `valueToCollection()`
This commit is contained in:
committed by
Gary Russell
parent
2e2b49a22f
commit
cff67ccdb4
@@ -188,9 +188,7 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
* be returned as a payload of the reply Message.
|
||||
* To take advantage of the HttpMessageConverters
|
||||
* registered on this adapter, provide a different type).
|
||||
*
|
||||
* @param expectedResponseType The expected type.
|
||||
*
|
||||
* Also see {@link #setExpectedResponseTypeExpression(Expression)}
|
||||
*/
|
||||
public void setExpectedResponseType(Class<?> expectedResponseType) {
|
||||
@@ -221,7 +219,6 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
/**
|
||||
* Set the Map of URI variable expressions to evaluate against the outbound message
|
||||
* when replacing the variable placeholders in a URI template.
|
||||
*
|
||||
* @param uriVariableExpressions The URI variable expressions.
|
||||
*/
|
||||
public void setUriVariableExpressions(Map<String, Expression> uriVariableExpressions) {
|
||||
@@ -235,7 +232,6 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
* Set the {@link Expression} to evaluate against the outbound message; the expression
|
||||
* must evaluate to a Map of URI variable expressions to evaluate against the outbound message
|
||||
* when replacing the variable placeholders in a URI template.
|
||||
*
|
||||
* @param uriVariablesExpression The URI variables expression.
|
||||
*/
|
||||
public void setUriVariablesExpression(Expression uriVariablesExpression) {
|
||||
@@ -246,7 +242,6 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
* Set to true if you wish 'Set-Cookie' headers in responses to be
|
||||
* transferred as 'Cookie' headers in subsequent interactions for
|
||||
* a message.
|
||||
*
|
||||
* @param transferCookies the transferCookies to set.
|
||||
*/
|
||||
public void setTransferCookies(boolean transferCookies) {
|
||||
@@ -343,14 +338,14 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
private void doConvertSetCookie(Map<String, Object> headers) {
|
||||
String keyName = null;
|
||||
for (String key : headers.keySet()) {
|
||||
if (key.equalsIgnoreCase(DefaultHttpHeaderMapper.SET_COOKIE)) {
|
||||
if (key.equalsIgnoreCase(HttpHeaders.SET_COOKIE)) {
|
||||
keyName = key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (keyName != null) {
|
||||
Object cookies = headers.remove(keyName);
|
||||
headers.put(DefaultHttpHeaderMapper.COOKIE, cookies);
|
||||
headers.put(HttpHeaders.COOKIE, cookies);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Converted Set-Cookie header to Cookie for: "
|
||||
+ cookies);
|
||||
@@ -562,7 +557,6 @@ public abstract class AbstractHttpRequestExecutingMessageHandler extends Abstrac
|
||||
.usingEvaluationContext(evaluationContextToUse)
|
||||
.withRoot(requestMessage)
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -61,11 +61,11 @@ import org.springframework.web.client.RestTemplate;
|
||||
* @since 2.0
|
||||
*/
|
||||
public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecutingMessageHandler {
|
||||
|
||||
private final RestTemplate restTemplate;
|
||||
|
||||
/**
|
||||
* Create a handler that will send requests to the provided URI.
|
||||
*
|
||||
* @param uri The URI.
|
||||
*/
|
||||
public HttpRequestExecutingMessageHandler(URI uri) {
|
||||
@@ -74,7 +74,6 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
|
||||
/**
|
||||
* Create a handler that will send requests to the provided URI.
|
||||
*
|
||||
* @param uri The URI.
|
||||
*/
|
||||
public HttpRequestExecutingMessageHandler(String uri) {
|
||||
@@ -83,7 +82,6 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
|
||||
/**
|
||||
* Create a handler that will send requests to the provided URI Expression.
|
||||
*
|
||||
* @param uriExpression The URI expression.
|
||||
*/
|
||||
public HttpRequestExecutingMessageHandler(Expression uriExpression) {
|
||||
@@ -142,9 +140,7 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
|
||||
/**
|
||||
* Set the {@link ClientHttpRequestFactory} for the underlying {@link RestTemplate}.
|
||||
*
|
||||
* @param requestFactory The request factory.
|
||||
*
|
||||
* @see RestTemplate#setRequestFactory(ClientHttpRequestFactory)
|
||||
*/
|
||||
public void setRequestFactory(ClientHttpRequestFactory requestFactory) {
|
||||
@@ -154,6 +150,7 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
@Override
|
||||
protected Object exchange(Supplier<URI> uriSupplier, HttpMethod httpMethod, HttpEntity<?> httpRequest,
|
||||
Object expectedResponseType, Message<?> requestMessage) {
|
||||
|
||||
URI uri = uriSupplier.get();
|
||||
ResponseEntity<?> httpResponse;
|
||||
try {
|
||||
@@ -162,14 +159,13 @@ public class HttpRequestExecutingMessageHandler extends AbstractHttpRequestExecu
|
||||
(ParameterizedTypeReference<?>) expectedResponseType);
|
||||
}
|
||||
else {
|
||||
httpResponse = this.restTemplate.exchange(uri, httpMethod, httpRequest,
|
||||
(Class<?>) expectedResponseType);
|
||||
httpResponse = this.restTemplate.exchange(uri, httpMethod, httpRequest, (Class<?>) expectedResponseType);
|
||||
}
|
||||
return getReply(httpResponse);
|
||||
}
|
||||
catch (RestClientException e) {
|
||||
throw new MessageHandlingException(requestMessage,
|
||||
"HTTP request execution failed for URI [" + uri + "]", e);
|
||||
throw new MessageHandlingException(requestMessage, "HTTP request execution failed for URI [" + uri + "]", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -75,7 +75,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAllow().size()).isEqualTo(1);
|
||||
assertThat(headers.getAllow()).hasSize(1);
|
||||
assertThat(headers.getAllow().iterator().next()).isEqualTo(HttpMethod.GET);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAllow().size()).isEqualTo(1);
|
||||
assertThat(headers.getAllow()).hasSize(1);
|
||||
assertThat(headers.getAllow().iterator().next()).isEqualTo(HttpMethod.GET);
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAllow().size()).isEqualTo(1);
|
||||
assertThat(headers.getAllow()).hasSize(1);
|
||||
assertThat(headers.getAllow().iterator().next()).isEqualTo(HttpMethod.GET);
|
||||
}
|
||||
|
||||
@@ -301,12 +301,12 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
@Test
|
||||
public void validateTransferEncodingMappedFromHttpHeaders() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setInboundHeaderNames(new String[] { "Transfer-Encoding" });
|
||||
mapper.setInboundHeaderNames("Transfer-Encoding");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("Transfer-Encoding", "chunked");
|
||||
|
||||
Map<String, ?> result = mapper.toHeaders(headers);
|
||||
assertThat(result.size()).isEqualTo(1);
|
||||
assertThat(result).hasSize(1);
|
||||
assertThat(result.get("Transfer-Encoding")).isEqualTo("chunked");
|
||||
|
||||
}
|
||||
@@ -329,23 +329,23 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
@Test
|
||||
public void validateCustomHeaderNamesMappedToHttpHeaders() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] { "foo", "bar" });
|
||||
mapper.setOutboundHeaderNames("foo", "bar");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foo", "abc");
|
||||
messageHeaders.put("bar", "123");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.size()).isEqualTo(2);
|
||||
assertThat(headers.get("foo").size()).isEqualTo(1);
|
||||
assertThat(headers.get("foo")).hasSize(1);
|
||||
assertThat(headers.getFirst("foo")).isEqualTo("abc");
|
||||
assertThat(headers.get("bar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("bar")).hasSize(1);
|
||||
assertThat(headers.getFirst("bar")).isEqualTo("123");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderNamePatternsMappedToHttpHeaders() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] { "x*", "*z", "a*f" });
|
||||
mapper.setOutboundHeaderNames("x*", "*z", "a*f");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("x1", "x1-value");
|
||||
messageHeaders.put("1x", "1x-value");
|
||||
@@ -361,18 +361,18 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
assertThat(headers.get("z1")).isNull();
|
||||
assertThat(headers.get("abc")).isNull();
|
||||
assertThat(headers.get("def")).isNull();
|
||||
assertThat(headers.get("x1").size()).isEqualTo(1);
|
||||
assertThat(headers.get("x1")).hasSize(1);
|
||||
assertThat(headers.getFirst("x1")).isEqualTo("x1-value");
|
||||
assertThat(headers.get("1z").size()).isEqualTo(1);
|
||||
assertThat(headers.get("1z")).hasSize(1);
|
||||
assertThat(headers.getFirst("1z")).isEqualTo("1z-value");
|
||||
assertThat(headers.get("abcdef").size()).isEqualTo(1);
|
||||
assertThat(headers.get("abcdef")).hasSize(1);
|
||||
assertThat(headers.getFirst("abcdef")).isEqualTo("abcdef-value");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderNamePatternsAndStandardResponseHeadersMappedToHttpHeaders() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] { "foo*", "HTTP_RESPONSE_HEADERS" });
|
||||
mapper.setOutboundHeaderNames("foo*", "HTTP_RESPONSE_HEADERS");
|
||||
mapper.setUserDefinedHeaderPrefix("X-");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foobar", "abc");
|
||||
@@ -383,7 +383,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
assertThat(headers.size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept().isEmpty()).isTrue();
|
||||
assertThat(headers.getContentType()).isEqualTo(MediaType.TEXT_XML);
|
||||
assertThat(headers.get("X-foobar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("X-foobar")).hasSize(1);
|
||||
assertThat(headers.getFirst("X-foobar")).isEqualTo("abc");
|
||||
}
|
||||
|
||||
@@ -391,7 +391,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
public void validateCustomHeaderNamePatternsAndStandardResponseHeadersMappedToHttpHeadersWithCustomPrefix() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setUserDefinedHeaderPrefix("Z-");
|
||||
mapper.setOutboundHeaderNames(new String[] { "foo*", "HTTP_RESPONSE_HEADERS" });
|
||||
mapper.setOutboundHeaderNames("foo*", "HTTP_RESPONSE_HEADERS");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foobar", "abc");
|
||||
messageHeaders.put("Accept", "text/html");
|
||||
@@ -401,7 +401,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
assertThat(headers.size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept().isEmpty()).isTrue();
|
||||
assertThat(headers.getContentType()).isEqualTo(MediaType.TEXT_XML);
|
||||
assertThat(headers.get("Z-foobar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("Z-foobar")).hasSize(1);
|
||||
assertThat(headers.getFirst("Z-foobar")).isEqualTo("abc");
|
||||
}
|
||||
|
||||
@@ -409,7 +409,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
public void validateCustomHeaderNamePatternsAndStandardResponseHeadersMappedToHttpHeadersWithCustomPrefixEmptyString() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setUserDefinedHeaderPrefix("");
|
||||
mapper.setOutboundHeaderNames(new String[] { "foo*", "HTTP_RESPONSE_HEADERS" });
|
||||
mapper.setOutboundHeaderNames("foo*", "HTTP_RESPONSE_HEADERS");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foobar", "abc");
|
||||
messageHeaders.put("Accept", "text/html");
|
||||
@@ -419,7 +419,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
assertThat(headers.size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept().isEmpty()).isTrue();
|
||||
assertThat(headers.getContentType()).isEqualTo(MediaType.TEXT_XML);
|
||||
assertThat(headers.get("foobar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("foobar")).hasSize(1);
|
||||
assertThat(headers.getFirst("foobar")).isEqualTo("abc");
|
||||
}
|
||||
|
||||
@@ -427,7 +427,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
public void validateCustomHeaderNamePatternsAndStandardResponseHeadersMappedToHttpHeadersWithCustomPrefixNull() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setUserDefinedHeaderPrefix(null);
|
||||
mapper.setOutboundHeaderNames(new String[] { "foo*", "HTTP_RESPONSE_HEADERS" });
|
||||
mapper.setOutboundHeaderNames("foo*", "HTTP_RESPONSE_HEADERS");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foobar", "abc");
|
||||
messageHeaders.put("Accept", "text/html");
|
||||
@@ -437,14 +437,14 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
assertThat(headers.size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept().isEmpty()).isTrue();
|
||||
assertThat(headers.getContentType()).isEqualTo(MediaType.TEXT_XML);
|
||||
assertThat(headers.get("foobar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("foobar")).hasSize(1);
|
||||
assertThat(headers.getFirst("foobar")).isEqualTo("abc");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderNamesMappedFromHttpHeaders() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setInboundHeaderNames(new String[] { "foo", "bar" });
|
||||
mapper.setInboundHeaderNames("foo", "bar");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("foo", "abc");
|
||||
headers.set("bar", "123");
|
||||
@@ -457,7 +457,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
@Test
|
||||
public void validateCustomHeaderNamePatternsMappedFromHttpHeaders() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setInboundHeaderNames(new String[] { "x*", "*z", "a*f" });
|
||||
mapper.setInboundHeaderNames("x*", "*z", "a*f");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("x1", "x1-value");
|
||||
headers.set("1x", "1x-value");
|
||||
@@ -482,13 +482,13 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
throws URISyntaxException {
|
||||
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setInboundHeaderNames(new String[] { "foo*", "HTTP_REQUEST_HEADERS" });
|
||||
mapper.setInboundHeaderNames("foo*", "HTTP_REQUEST_HEADERS");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("foobar", "abc");
|
||||
headers.setAccept(Collections.singletonList(MediaType.TEXT_XML));
|
||||
headers.setLocation(new URI("http://www.example.org"));
|
||||
Map<String, ?> result = mapper.toHeaders(headers);
|
||||
assertThat(result.size()).isEqualTo(2);
|
||||
assertThat(result).hasSize(2);
|
||||
assertThat(result.get("Location")).isNull();
|
||||
assertThat(result.get("foobar")).isEqualTo("abc");
|
||||
assertThat(result.get("Accept")).isEqualTo(MediaType.TEXT_XML);
|
||||
@@ -497,7 +497,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
@Test
|
||||
public void validateCustomHeadersWithNonStringValuesAndNoConverter() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] { "customHeader*" });
|
||||
mapper.setOutboundHeaderNames("customHeader*");
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
@@ -513,7 +513,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
@Test
|
||||
public void validateCustomHeadersWithNonStringValuesAndDefaultConverterOnly() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] { "customHeader*" });
|
||||
mapper.setOutboundHeaderNames("customHeader*");
|
||||
ConversionService cs = new DefaultConversionService();
|
||||
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
|
||||
beanFactory.registerSingleton("integrationConversionService", cs);
|
||||
@@ -534,7 +534,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
@Test
|
||||
public void validateCustomHeadersWithNonStringValuesAndDefaultConverterWithCustomConverter() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] { "customHeader*" });
|
||||
mapper.setOutboundHeaderNames("customHeader*");
|
||||
GenericConversionService cs = new DefaultConversionService();
|
||||
cs.addConverter(new TestClassConverter());
|
||||
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
|
||||
|
||||
@@ -48,6 +48,7 @@ import org.springframework.util.StopWatch;
|
||||
* @author Gunnar Hillert
|
||||
* @author Artem Bilan
|
||||
* @author Gary Russell
|
||||
*
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@@ -56,7 +57,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void validateAcceptHeaderWithNoSlash() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept", "bar");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -66,7 +67,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptHeaderSingleString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept", "bar/foo");
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
@@ -79,7 +80,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptHeaderSingleMediaType() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept", new MediaType("bar", "foo"));
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
@@ -92,12 +93,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptHeaderMultipleAsDelimitedString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept", "bar/foo, text/xml");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAccept().size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept()).hasSize(2);
|
||||
assertThat(headers.getAccept().get(0).toString()).isEqualTo("bar/foo");
|
||||
assertThat(headers.getAccept().get(1).toString()).isEqualTo("text/xml");
|
||||
}
|
||||
@@ -105,12 +106,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptHeaderMultipleAsStringArray() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
messageHeaders.put("Accept", new String[] {"bar/foo", "text/xml"});
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept", new String[] { "bar/foo", "text/xml" });
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAccept().size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept()).hasSize(2);
|
||||
assertThat(headers.getAccept().get(0).toString()).isEqualTo("bar/foo");
|
||||
assertThat(headers.getAccept().get(1).toString()).isEqualTo("text/xml");
|
||||
}
|
||||
@@ -118,12 +119,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptHeaderMultipleAsStringCollection() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept", Arrays.asList("bar/foo", "text/xml"));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAccept().size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept()).hasSize(2);
|
||||
assertThat(headers.getAccept().get(0).toString()).isEqualTo("bar/foo");
|
||||
assertThat(headers.getAccept().get(1).toString()).isEqualTo("text/xml");
|
||||
}
|
||||
@@ -131,25 +132,25 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptHeaderMultipleAsStringCollectionCaseInsensitive() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("acCePt", Arrays.asList("bar/foo", "text/xml"));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAccept().size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept()).hasSize(2);
|
||||
assertThat(headers.getAccept().get(0).toString()).isEqualTo("bar/foo");
|
||||
assertThat(headers.getAccept().get(1).toString()).isEqualTo("text/xml");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateAcceptHeaderMultipleAsMediatypeCollection() {
|
||||
public void validateAcceptHeaderMultipleAsMediaTypeCollection() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept", Arrays.asList(new MediaType("bar", "foo"), new MediaType("text", "xml")));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAccept().size()).isEqualTo(2);
|
||||
assertThat(headers.getAccept()).hasSize(2);
|
||||
assertThat(headers.getAccept().get(0).toString()).isEqualTo("bar/foo");
|
||||
assertThat(headers.getAccept().get(1).toString()).isEqualTo("text/xml");
|
||||
}
|
||||
@@ -159,7 +160,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test(expected = UnsupportedCharsetException.class)
|
||||
public void validateAcceptCharsetHeaderWithWrongCharset() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept-Charset", "foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -168,36 +169,36 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptCharsetHeaderSingleString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept-Charset", "UTF-8");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAcceptCharset().size()).isEqualTo(1);
|
||||
assertThat(headers.getAcceptCharset()).hasSize(1);
|
||||
assertThat(headers.getAcceptCharset().get(0).displayName()).isEqualTo("UTF-8");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateAcceptCharsetHeaderSingleCharset() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept-Charset", Charset.forName("UTF-8"));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAcceptCharset().size()).isEqualTo(1);
|
||||
assertThat(headers.getAcceptCharset()).hasSize(1);
|
||||
assertThat(headers.getAcceptCharset().get(0).displayName()).isEqualTo("UTF-8");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateAcceptCharsetHeaderMultipleAsDelimitedString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept-Charset", "UTF-8, ISO-8859-1");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAcceptCharset().size()).isEqualTo(2);
|
||||
assertThat(headers.getAcceptCharset()).hasSize(2);
|
||||
// validate contains since the order is not enforced
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("UTF-8"))).isTrue();
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("ISO-8859-1"))).isTrue();
|
||||
@@ -206,12 +207,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptCharsetHeaderMultipleAsStringArray() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
messageHeaders.put("Accept-Charset", new String[] {"UTF-8", "ISO-8859-1"});
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept-Charset", new String[] { "UTF-8", "ISO-8859-1" });
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAcceptCharset().size()).isEqualTo(2);
|
||||
assertThat(headers.getAcceptCharset()).hasSize(2);
|
||||
// validate contains since the order is not enforced
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("UTF-8"))).isTrue();
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("ISO-8859-1"))).isTrue();
|
||||
@@ -220,12 +221,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptCharsetHeaderMultipleAsCharsetArray() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
messageHeaders.put("Accept-Charset", new Charset[] {Charset.forName("UTF-8"), Charset.forName("ISO-8859-1")});
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept-Charset", new Charset[] { Charset.forName("UTF-8"), Charset.forName("ISO-8859-1") });
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAcceptCharset().size()).isEqualTo(2);
|
||||
assertThat(headers.getAcceptCharset()).hasSize(2);
|
||||
// validate contains since the order is not enforced
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("UTF-8"))).isTrue();
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("ISO-8859-1"))).isTrue();
|
||||
@@ -234,12 +235,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptCharsetHeaderMultipleAsCollectionOfStrings() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept-Charset", Arrays.asList("UTF-8", "ISO-8859-1"));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAcceptCharset().size()).isEqualTo(2);
|
||||
assertThat(headers.getAcceptCharset()).hasSize(2);
|
||||
// validate contains since the order is not enforced
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("UTF-8"))).isTrue();
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("ISO-8859-1"))).isTrue();
|
||||
@@ -248,12 +249,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateAcceptCharsetHeaderMultipleAsCollectionOfCharsets() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Accept-Charset", Arrays.asList(Charset.forName("UTF-8"), Charset.forName("ISO-8859-1")));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.getAcceptCharset().size()).isEqualTo(2);
|
||||
assertThat(headers.getAcceptCharset()).hasSize(2);
|
||||
// validate contains since the order is not enforced
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("UTF-8"))).isTrue();
|
||||
assertThat(headers.getAcceptCharset().contains(Charset.forName("ISO-8859-1"))).isTrue();
|
||||
@@ -264,7 +265,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateCacheControl() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Cache-Control", "foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -277,7 +278,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateContentLengthAsString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Content-Length", "1");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -288,7 +289,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateContentLengthAsNumber() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Content-Length", 1);
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -299,7 +300,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test(expected = NumberFormatException.class)
|
||||
public void validateContentLengthAsNonNumericString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Content-Length", "foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -311,7 +312,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void validateContentTypeWrongValue() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put(MessageHeaders.CONTENT_TYPE, "foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -321,7 +322,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateContentTypeAsString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Content-Type", "text/html");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -333,7 +334,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateContentTypeAsMediaType() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put(MessageHeaders.CONTENT_TYPE, new MediaType("text", "html"));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -347,7 +348,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateDateAsNumber() throws ParseException {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Date", 12345678);
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -360,7 +361,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateDateAsString() throws ParseException {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Date", "12345678");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -373,7 +374,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateDateAsDate() throws ParseException {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Date", new Date(12345678));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -388,7 +389,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateIfModifiedSinceAsNumber() throws ParseException {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("If-Modified-Since", 12345678);
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -402,7 +403,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateIfModifiedSinceAsString() throws ParseException {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("If-Modified-Since", "12345678");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -416,7 +417,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
@Test
|
||||
public void validateIfModifiedSinceAsDate() throws ParseException {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("If-Modified-Since", new Date(12345678));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -430,74 +431,74 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
// If-None-Match
|
||||
|
||||
@Test
|
||||
public void validateIfNoneMatch() throws ParseException {
|
||||
public void validateIfNoneMatch() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("If-None-Match", "\"1234567\"");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
|
||||
assertThat(headers.getIfNoneMatch().size()).isEqualTo(1);
|
||||
assertThat(headers.getIfNoneMatch()).hasSize(1);
|
||||
assertThat(headers.getIfNoneMatch().get(0)).isEqualTo("\"1234567\"");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateIfNoneMatchAsDelimitedString() throws ParseException {
|
||||
public void validateIfNoneMatchAsDelimitedString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("If-None-Match", "\"123,4567\", \"123\"");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
|
||||
assertThat(headers.getIfNoneMatch().size()).isEqualTo(2);
|
||||
assertThat(headers.getIfNoneMatch()).hasSize(2);
|
||||
assertThat(headers.getIfNoneMatch().get(0)).isEqualTo("\"123,4567\"");
|
||||
assertThat(headers.getIfNoneMatch().get(1)).isEqualTo("\"123\"");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateIfNoneMatchAsStringArray() throws ParseException {
|
||||
public void validateIfNoneMatchAsStringArray() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
messageHeaders.put("If-None-Match", new String[] {"\"1234567\"", "\"123\""});
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("If-None-Match", new String[] { "\"1234567\"", "\"123\"" });
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
|
||||
assertThat(headers.getIfNoneMatch().size()).isEqualTo(2);
|
||||
assertThat(headers.getIfNoneMatch()).hasSize(2);
|
||||
assertThat(headers.getIfNoneMatch().get(0)).isEqualTo("\"1234567\"");
|
||||
assertThat(headers.getIfNoneMatch().get(1)).isEqualTo("\"123\"");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateIfNoneMatchAsCommaDelimitedString() throws ParseException {
|
||||
public void validateIfNoneMatchAsCommaDelimitedString() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("If-None-Match", "\"123.4567\", \"123\"");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
|
||||
assertThat(headers.getIfNoneMatch().size()).isEqualTo(2);
|
||||
assertThat(headers.getIfNoneMatch()).hasSize(2);
|
||||
assertThat(headers.getIfNoneMatch().get(0)).isEqualTo("\"123.4567\"");
|
||||
assertThat(headers.getIfNoneMatch().get(1)).isEqualTo("\"123\"");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateIfNoneMatchAsStringCollection() throws ParseException {
|
||||
public void validateIfNoneMatchAsStringCollection() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("If-None-Match", Arrays.asList("\"1234567\"", "\"123\""));
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
|
||||
assertThat(headers.getIfNoneMatch().size()).isEqualTo(2);
|
||||
assertThat(headers.getIfNoneMatch()).hasSize(2);
|
||||
assertThat(headers.getIfNoneMatch().get(0)).isEqualTo("\"1234567\"");
|
||||
assertThat(headers.getIfNoneMatch().get(1)).isEqualTo("\"123\"");
|
||||
}
|
||||
|
||||
// Pragma tests
|
||||
@Test
|
||||
public void validatePragma() throws ParseException {
|
||||
public void validatePragma() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Pragma", "foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -506,9 +507,9 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
|
||||
// Transfer-Encoding tests
|
||||
@Test
|
||||
public void validateTransferEncoding() throws ParseException {
|
||||
public void validateTransferEncoding() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Transfer-Encoding", "chunked");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -516,20 +517,20 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateTransferEncodingToHeaders() throws ParseException {
|
||||
public void validateTransferEncodingToHeaders() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
|
||||
HttpHeaders httpHeaders = new HttpHeaders();
|
||||
httpHeaders.set("Transfer-Encoding", "chunked");
|
||||
|
||||
Map<String, ?> messageHeaders = mapper.toHeaders(httpHeaders);
|
||||
assertThat(messageHeaders.size()).isEqualTo(1);
|
||||
assertThat(messageHeaders).hasSize(1);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void perf() throws ParseException {
|
||||
public void perf() {
|
||||
HeaderMapper<HttpHeaders> mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
|
||||
HttpHeaders httpHeaders = new HttpHeaders();
|
||||
@@ -554,9 +555,9 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
// Custom headers
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderWithNoHeaderNames() throws ParseException {
|
||||
public void validateCustomHeaderWithNoHeaderNames() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foo", "foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
@@ -565,24 +566,24 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderWithHeaderNames() throws ParseException {
|
||||
public void validateCustomHeaderWithHeaderNames() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] {"foo"});
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
mapper.setOutboundHeaderNames("foo");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foo", "foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.get("X-foo")).isNull();
|
||||
assertThat(headers.get("foo")).isNotNull();
|
||||
assertThat(headers.get("foo").size() == 1).isTrue();
|
||||
assertThat(headers.get("foo")).hasSize(1);
|
||||
assertThat(headers.get("foo").get(0)).isEqualTo("foo");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderWithHeaderNamePatterns() throws ParseException {
|
||||
public void validateCustomHeaderWithHeaderNamePatterns() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] {"x*", "*z", "a*f"});
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
mapper.setOutboundHeaderNames("x*", "*z", "a*f");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("x1", "x1-value");
|
||||
messageHeaders.put("1x", "1x-value");
|
||||
messageHeaders.put("z1", "z1-value");
|
||||
@@ -592,80 +593,80 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
messageHeaders.put("abcdef", "abcdef-value");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.size()).isEqualTo(3);
|
||||
assertThat(headers).hasSize(3);
|
||||
assertThat(headers.get("1x")).isNull();
|
||||
assertThat(headers.get("z1")).isNull();
|
||||
assertThat(headers.get("abc")).isNull();
|
||||
assertThat(headers.get("def")).isNull();
|
||||
assertThat(headers.get("x1").size()).isEqualTo(1);
|
||||
assertThat(headers.get("x1")).hasSize(1);
|
||||
assertThat(headers.getFirst("x1")).isEqualTo("x1-value");
|
||||
assertThat(headers.get("1z").size()).isEqualTo(1);
|
||||
assertThat(headers.get("1z")).hasSize(1);
|
||||
assertThat(headers.getFirst("1z")).isEqualTo("1z-value");
|
||||
assertThat(headers.get("abcdef").size()).isEqualTo(1);
|
||||
assertThat(headers.get("abcdef")).hasSize(1);
|
||||
assertThat(headers.getFirst("abcdef")).isEqualTo("abcdef-value");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderWithHeaderNamePatternsAndStandardRequestHeaders() throws ParseException {
|
||||
public void validateCustomHeaderWithHeaderNamePatternsAndStandardRequestHeaders() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] {"foo*", "HTTP_REQUEST_HEADERS"});
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
mapper.setOutboundHeaderNames("foo*", "HTTP_REQUEST_HEADERS");
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foobar", "abc");
|
||||
messageHeaders.put("Content-Type", "text/html");
|
||||
messageHeaders.put("Accept", "text/xml");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.size()).isEqualTo(3);
|
||||
assertThat(headers.get("foobar").size()).isEqualTo(1);
|
||||
assertThat(headers).hasSize(3);
|
||||
assertThat(headers.get("foobar")).hasSize(1);
|
||||
assertThat(headers.getFirst("foobar")).isEqualTo("abc");
|
||||
assertThat(headers.getContentType().toString()).isEqualTo("text/html");
|
||||
assertThat(headers.getAccept().size()).isEqualTo(1);
|
||||
assertThat(headers.getAccept()).hasSize(1);
|
||||
assertThat(headers.getAccept().get(0)).isEqualTo(MediaType.TEXT_XML);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderWithHeaderNamePatternsAndStandardResponseHeaders() throws ParseException {
|
||||
public void validateCustomHeaderWithHeaderNamePatternsAndStandardResponseHeaders() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setInboundHeaderNames(new String[] {"foo*", "HTTP_RESPONSE_HEADERS"});
|
||||
mapper.setInboundHeaderNames("foo*", "HTTP_RESPONSE_HEADERS");
|
||||
HttpHeaders httpHeaders = new HttpHeaders();
|
||||
httpHeaders.set("foobar", "abc");
|
||||
httpHeaders.setContentType(MediaType.TEXT_HTML);
|
||||
httpHeaders.setAccept(Collections.singletonList(MediaType.TEXT_HTML));
|
||||
Map<String, ?> messageHeaders = mapper.toHeaders(httpHeaders);
|
||||
assertThat(messageHeaders.size()).isEqualTo(2);
|
||||
assertThat(messageHeaders).hasSize(2);
|
||||
assertThat(messageHeaders.get("Accept")).isNull();
|
||||
assertThat(messageHeaders.get("foobar")).isEqualTo("abc");
|
||||
assertThat(messageHeaders.get(MessageHeaders.CONTENT_TYPE).toString()).isEqualTo("text/html");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderWithStandardPrefix() throws Exception {
|
||||
public void validateCustomHeaderWithStandardPrefix() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setInboundHeaderNames(new String[] {"X-Foo"});
|
||||
mapper.setInboundHeaderNames("X-Foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("x-foo", "x-foo-value");
|
||||
Map<String, ?> result = mapper.toHeaders(headers);
|
||||
assertThat(result.size()).isEqualTo(1);
|
||||
assertThat(result).hasSize(1);
|
||||
assertThat(result.get("x-foo")).isEqualTo("x-foo-value");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderWithStandardPrefixSameCase() throws Exception {
|
||||
public void validateCustomHeaderWithStandardPrefixSameCase() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setInboundHeaderNames(new String[] {"X-Foo"});
|
||||
mapper.setInboundHeaderNames("X-Foo");
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.set("X-Foo", "x-foo-value");
|
||||
Map<String, ?> result = mapper.toHeaders(headers);
|
||||
assertThat(result.size()).isEqualTo(1);
|
||||
assertThat(result).hasSize(1);
|
||||
assertThat(result.get("X-Foo")).isEqualTo("x-foo-value");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCustomHeaderCaseInsensitivity() throws ParseException {
|
||||
public void validateCustomHeaderCaseInsensitivity() {
|
||||
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
|
||||
mapper.setOutboundHeaderNames(new String[] {"*", "HTTP_REQUEST_HEADERS"});
|
||||
mapper.setOutboundHeaderNames("*", "HTTP_REQUEST_HEADERS");
|
||||
mapper.setUserDefinedHeaderPrefix("X-");
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("foobar", "abc");
|
||||
messageHeaders.put("X-bar", "xbar");
|
||||
messageHeaders.put("x-baz", "xbaz");
|
||||
@@ -674,12 +675,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
mapper.fromHeaders(new MessageHeaders(messageHeaders), headers);
|
||||
assertThat(headers.size()).isEqualTo(5);
|
||||
assertThat(headers.get("X-foobar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("x-foobar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("X-bar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("x-bar").size()).isEqualTo(1);
|
||||
assertThat(headers.get("X-baz").size()).isEqualTo(1);
|
||||
assertThat(headers.get("x-baz").size()).isEqualTo(1);
|
||||
assertThat(headers.get("X-foobar")).hasSize(1);
|
||||
assertThat(headers.get("x-foobar")).hasSize(1);
|
||||
assertThat(headers.get("X-bar")).hasSize(1);
|
||||
assertThat(headers.get("x-bar")).hasSize(1);
|
||||
assertThat(headers.get("X-baz")).hasSize(1);
|
||||
assertThat(headers.get("x-baz")).hasSize(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -687,7 +688,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
DefaultHttpHeaderMapper mapper = DefaultHttpHeaderMapper.outboundMapper();
|
||||
// not suppressed on outbound request, by default
|
||||
mapper.setExcludedOutboundStandardRequestHeaderNames("Content-Length");
|
||||
Map<String, Object> messageHeaders = new HashMap<String, Object>();
|
||||
Map<String, Object> messageHeaders = new HashMap<>();
|
||||
messageHeaders.put("Content-Length", 4);
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
@@ -704,7 +705,7 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInt2995IfModifiedSince() throws Exception {
|
||||
public void testInt2995IfModifiedSince() {
|
||||
Date ifModifiedSince = new Date();
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy", Locale.US);
|
||||
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
@@ -720,12 +721,12 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testContentDispositionHeader() throws Exception {
|
||||
public void testContentDispositionHeader() {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
String headerValue = "attachment; filename=\"test.txt\"";
|
||||
headers.set("Content-Disposition", headerValue);
|
||||
Map<String, Object> messageHeaders = DefaultHttpHeaderMapper.outboundMapper().toHeaders(headers);
|
||||
assertThat(messageHeaders.size()).isEqualTo(1);
|
||||
assertThat(messageHeaders).hasSize(1);
|
||||
assertThat(messageHeaders.get("Content-Disposition")).isEqualTo(headerValue);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user