Polishing tests
This commit is contained in:
parent
8d5a6520ce
commit
c4e362500b
|
@ -63,8 +63,10 @@ public class ByteArrayHttpMessageConverterTests {
|
||||||
byte[] body = new byte[]{0x1, 0x2};
|
byte[] body = new byte[]{0x1, 0x2};
|
||||||
converter.write(body, null, outputMessage);
|
converter.write(body, null, outputMessage);
|
||||||
assertThat(outputMessage.getBodyAsBytes()).as("Invalid result").isEqualTo(body);
|
assertThat(outputMessage.getBodyAsBytes()).as("Invalid result").isEqualTo(body);
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "octet-stream"));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
assertThat(outputMessage.getHeaders().getContentLength()).as("Invalid content-length").isEqualTo(2);
|
.as("Invalid content-type").isEqualTo(MediaType.APPLICATION_OCTET_STREAM);
|
||||||
|
assertThat(outputMessage.getHeaders().getContentLength())
|
||||||
|
.as("Invalid content-length").isEqualTo(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,9 +147,12 @@ public class FormHttpMessageConverterTests {
|
||||||
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
||||||
this.converter.write(body, APPLICATION_FORM_URLENCODED, outputMessage);
|
this.converter.write(body, APPLICATION_FORM_URLENCODED, outputMessage);
|
||||||
|
|
||||||
assertThat(outputMessage.getBodyAsString(StandardCharsets.UTF_8)).as("Invalid result").isEqualTo("name+1=value+1&name+2=value+2%2B1&name+2=value+2%2B2&name+3");
|
assertThat(outputMessage.getBodyAsString(StandardCharsets.UTF_8))
|
||||||
assertThat(outputMessage.getHeaders().getContentType().toString()).as("Invalid content-type").isEqualTo("application/x-www-form-urlencoded;charset=UTF-8");
|
.as("Invalid result").isEqualTo("name+1=value+1&name+2=value+2%2B1&name+2=value+2%2B2&name+3");
|
||||||
assertThat(outputMessage.getHeaders().getContentLength()).as("Invalid content-length").isEqualTo(outputMessage.getBodyAsBytes().length);
|
assertThat(outputMessage.getHeaders().getContentType().toString())
|
||||||
|
.as("Invalid content-type").isEqualTo("application/x-www-form-urlencoded;charset=UTF-8");
|
||||||
|
assertThat(outputMessage.getHeaders().getContentLength())
|
||||||
|
.as("Invalid content-length").isEqualTo(outputMessage.getBodyAsBytes().length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -106,8 +106,10 @@ public class ResourceHttpMessageConverterTests {
|
||||||
Resource body = new ClassPathResource("logo.jpg", getClass());
|
Resource body = new ClassPathResource("logo.jpg", getClass());
|
||||||
converter.write(body, null, outputMessage);
|
converter.write(body, null, outputMessage);
|
||||||
|
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(MediaType.IMAGE_JPEG);
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
assertThat(outputMessage.getHeaders().getContentLength()).as("Invalid content-length").isEqualTo(body.getFile().length());
|
.as("Invalid content-type").isEqualTo(MediaType.IMAGE_JPEG);
|
||||||
|
assertThat(outputMessage.getHeaders().getContentLength())
|
||||||
|
.as("Invalid content-length").isEqualTo(body.getFile().length());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test // SPR-10848
|
@Test // SPR-10848
|
||||||
|
|
|
@ -138,7 +138,8 @@ public class GsonHttpMessageConverterTests {
|
||||||
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
||||||
assertThat(result.contains("\"bool\":true")).isTrue();
|
assertThat(result.contains("\"bool\":true")).isTrue();
|
||||||
assertThat(result.contains("\"bytes\":[1,2]")).isTrue();
|
assertThat(result.contains("\"bytes\":[1,2]")).isTrue();
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "json", utf8));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(new MediaType("application", "json", utf8));
|
||||||
verify(outputMessage.getBody(), never()).close();
|
verify(outputMessage.getBody(), never()).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +162,8 @@ public class GsonHttpMessageConverterTests {
|
||||||
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
||||||
assertThat(result.contains("\"bool\":true")).isTrue();
|
assertThat(result.contains("\"bool\":true")).isTrue();
|
||||||
assertThat(result.contains("\"bytes\":[1,2]")).isTrue();
|
assertThat(result.contains("\"bytes\":[1,2]")).isTrue();
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "json", utf8));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(new MediaType("application", "json", utf8));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -177,7 +179,7 @@ public class GsonHttpMessageConverterTests {
|
||||||
@Test
|
@Test
|
||||||
public void readInvalidJson() throws IOException {
|
public void readInvalidJson() throws IOException {
|
||||||
String body = "FooBar";
|
String body = "FooBar";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
||||||
this.converter.read(MyBean.class, inputMessage));
|
this.converter.read(MyBean.class, inputMessage));
|
||||||
|
|
|
@ -138,7 +138,8 @@ public class JsonbHttpMessageConverterTests {
|
||||||
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
||||||
assertThat(result.contains("\"bool\":true")).isTrue();
|
assertThat(result.contains("\"bool\":true")).isTrue();
|
||||||
assertThat(result.contains("\"bytes\":[1,2]")).isTrue();
|
assertThat(result.contains("\"bytes\":[1,2]")).isTrue();
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "json", utf8));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(new MediaType("application", "json", utf8));
|
||||||
verify(outputMessage.getBody(), never()).close();
|
verify(outputMessage.getBody(), never()).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +162,8 @@ public class JsonbHttpMessageConverterTests {
|
||||||
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
||||||
assertThat(result.contains("\"bool\":true")).isTrue();
|
assertThat(result.contains("\"bool\":true")).isTrue();
|
||||||
assertThat(result.contains("\"bytes\":[1,2]")).isTrue();
|
assertThat(result.contains("\"bytes\":[1,2]")).isTrue();
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "json", utf8));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(new MediaType("application", "json", utf8));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -160,7 +160,7 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
"\"string\":\"Foo\"," +
|
"\"string\":\"Foo\"," +
|
||||||
"\"bool\":true," +
|
"\"bool\":true," +
|
||||||
"\"fraction\":42.0}";
|
"\"fraction\":42.0}";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
||||||
HashMap<String, Object> result = (HashMap<String, Object>) converter.read(HashMap.class, inputMessage);
|
HashMap<String, Object> result = (HashMap<String, Object>) converter.read(HashMap.class, inputMessage);
|
||||||
assertThat(result.get("string")).isEqualTo("Foo");
|
assertThat(result.get("string")).isEqualTo("Foo");
|
||||||
|
@ -192,7 +192,8 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
||||||
assertThat(result.contains("\"bool\":true")).isTrue();
|
assertThat(result.contains("\"bool\":true")).isTrue();
|
||||||
assertThat(result.contains("\"bytes\":\"AQI=\"")).isTrue();
|
assertThat(result.contains("\"bytes\":\"AQI=\"")).isTrue();
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(MediaType.APPLICATION_JSON);
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(MediaType.APPLICATION_JSON);
|
||||||
verify(outputMessage.getBody(), never()).close();
|
verify(outputMessage.getBody(), never()).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,7 +215,8 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
assertThat(result.contains("\"array\":[\"Foo\",\"Bar\"]")).isTrue();
|
||||||
assertThat(result.contains("\"bool\":true")).isTrue();
|
assertThat(result.contains("\"bool\":true")).isTrue();
|
||||||
assertThat(result.contains("\"bytes\":\"AQI=\"")).isTrue();
|
assertThat(result.contains("\"bytes\":\"AQI=\"")).isTrue();
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(MediaType.APPLICATION_JSON);
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(MediaType.APPLICATION_JSON);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -230,16 +232,16 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
@Test
|
@Test
|
||||||
public void readInvalidJson() throws IOException {
|
public void readInvalidJson() throws IOException {
|
||||||
String body = "FooBar";
|
String body = "FooBar";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class)
|
||||||
converter.read(MyBean.class, inputMessage));
|
.isThrownBy(() -> converter.read(MyBean.class, inputMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readValidJsonWithUnknownProperty() throws IOException {
|
public void readValidJsonWithUnknownProperty() throws IOException {
|
||||||
String body = "{\"string\":\"string\",\"unknownProperty\":\"value\"}";
|
String body = "{\"string\":\"string\",\"unknownProperty\":\"value\"}";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
||||||
converter.read(MyBean.class, inputMessage);
|
converter.read(MyBean.class, inputMessage);
|
||||||
// Assert no HttpMessageNotReadableException is thrown
|
// Assert no HttpMessageNotReadableException is thrown
|
||||||
|
@ -266,7 +268,7 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
"\"string\":\"Foo\"," +
|
"\"string\":\"Foo\"," +
|
||||||
"\"bool\":true," +
|
"\"bool\":true," +
|
||||||
"\"fraction\":42.0}]";
|
"\"fraction\":42.0}]";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
||||||
|
|
||||||
List<MyBean> results = (List<MyBean>) converter.read(List.class, inputMessage);
|
List<MyBean> results = (List<MyBean>) converter.read(List.class, inputMessage);
|
||||||
|
@ -280,7 +282,7 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
assertThat(result.getBytes()).isEqualTo(new byte[] {0x1, 0x2});
|
assertThat(result.getBytes()).isEqualTo(new byte[] {0x1, 0x2});
|
||||||
|
|
||||||
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
||||||
converter.write(results, new MediaType("application", "json"), outputMessage);
|
converter.write(results, MediaType.APPLICATION_JSON, outputMessage);
|
||||||
JSONAssert.assertEquals(body, outputMessage.getBodyAsString(StandardCharsets.UTF_8), true);
|
JSONAssert.assertEquals(body, outputMessage.getBodyAsString(StandardCharsets.UTF_8), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -296,8 +298,8 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
"\"string\":\"Foo\"," +
|
"\"string\":\"Foo\"," +
|
||||||
"\"bool\":true," +
|
"\"bool\":true," +
|
||||||
"\"fraction\":42.0}]";
|
"\"fraction\":42.0}]";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
|
||||||
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
|
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
|
||||||
List<MyBean> results = (List<MyBean>) converter.read(beansList.getType(), null, inputMessage);
|
List<MyBean> results = (List<MyBean>) converter.read(beansList.getType(), null, inputMessage);
|
||||||
|
@ -311,7 +313,7 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
assertThat(result.getBytes()).isEqualTo(new byte[] {0x1, 0x2});
|
assertThat(result.getBytes()).isEqualTo(new byte[] {0x1, 0x2});
|
||||||
|
|
||||||
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
||||||
converter.write(results, beansList.getType(), new MediaType("application", "json"), outputMessage);
|
converter.write(results, beansList.getType(), MediaType.APPLICATION_JSON, outputMessage);
|
||||||
JSONAssert.assertEquals(body, outputMessage.getBodyAsString(StandardCharsets.UTF_8), true);
|
JSONAssert.assertEquals(body, outputMessage.getBodyAsString(StandardCharsets.UTF_8), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,8 +330,8 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
"\"string\":\"Foo\"," +
|
"\"string\":\"Foo\"," +
|
||||||
"\"bool\":true," +
|
"\"bool\":true," +
|
||||||
"\"fraction\":42.0}]";
|
"\"fraction\":42.0}]";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
|
||||||
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
|
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
|
||||||
List<MyBean> results = (List<MyBean>) converter.read(beansList.getType(), null, inputMessage);
|
List<MyBean> results = (List<MyBean>) converter.read(beansList.getType(), null, inputMessage);
|
||||||
|
@ -343,7 +345,7 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
assertThat(result.getBytes()).isEqualTo(new byte[] {0x1, 0x2});
|
assertThat(result.getBytes()).isEqualTo(new byte[] {0x1, 0x2});
|
||||||
|
|
||||||
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
||||||
converter.write(results, baseList.getType(), new MediaType("application", "json"), outputMessage);
|
converter.write(results, baseList.getType(), MediaType.APPLICATION_JSON, outputMessage);
|
||||||
JSONAssert.assertEquals(body, outputMessage.getBodyAsString(StandardCharsets.UTF_8), true);
|
JSONAssert.assertEquals(body, outputMessage.getBodyAsString(StandardCharsets.UTF_8), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -489,7 +491,7 @@ public class MappingJackson2HttpMessageConverterTests {
|
||||||
public void readWithNoDefaultConstructor() throws Exception {
|
public void readWithNoDefaultConstructor() throws Exception {
|
||||||
String body = "{\"property1\":\"foo\",\"property2\":\"bar\"}";
|
String body = "{\"property1\":\"foo\",\"property2\":\"bar\"}";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "json"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_JSON);
|
||||||
assertThatExceptionOfType(HttpMessageConversionException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageConversionException.class).isThrownBy(() ->
|
||||||
converter.read(BeanWithNoDefaultConstructor.class, inputMessage))
|
converter.read(BeanWithNoDefaultConstructor.class, inputMessage))
|
||||||
.withMessageStartingWith("Type definition error:");
|
.withMessageStartingWith("Type definition error:");
|
||||||
|
|
|
@ -19,7 +19,7 @@ package org.springframework.http.converter.protobuf;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import com.google.protobuf.ExtensionRegistry;
|
import com.google.protobuf.ExtensionRegistry;
|
||||||
import com.google.protobuf.Message;
|
import com.google.protobuf.Message;
|
||||||
|
@ -158,7 +158,7 @@ public class ProtobufHttpMessageConverterTests {
|
||||||
|
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).isEqualTo(contentType);
|
assertThat(outputMessage.getHeaders().getContentType()).isEqualTo(contentType);
|
||||||
|
|
||||||
final String body = outputMessage.getBodyAsString(Charset.forName("UTF-8"));
|
final String body = outputMessage.getBodyAsString(StandardCharsets.UTF_8);
|
||||||
assertThat(body.isEmpty()).as("body is empty").isFalse();
|
assertThat(body.isEmpty()).as("body is empty").isFalse();
|
||||||
|
|
||||||
Msg.Builder builder = Msg.newBuilder();
|
Msg.Builder builder = Msg.newBuilder();
|
||||||
|
@ -182,7 +182,7 @@ public class ProtobufHttpMessageConverterTests {
|
||||||
|
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).isEqualTo(contentType);
|
assertThat(outputMessage.getHeaders().getContentType()).isEqualTo(contentType);
|
||||||
|
|
||||||
final String body = outputMessage.getBodyAsString(Charset.forName("UTF-8"));
|
final String body = outputMessage.getBodyAsString(StandardCharsets.UTF_8);
|
||||||
assertThat(body.isEmpty()).as("body is empty").isFalse();
|
assertThat(body.isEmpty()).as("body is empty").isFalse();
|
||||||
|
|
||||||
Msg.Builder builder = Msg.newBuilder();
|
Msg.Builder builder = Msg.newBuilder();
|
||||||
|
@ -197,7 +197,8 @@ public class ProtobufHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void defaultContentType() throws Exception {
|
public void defaultContentType() throws Exception {
|
||||||
assertThat(this.converter.getDefaultContentType(this.testMsg)).isEqualTo(ProtobufHttpMessageConverter.PROTOBUF);
|
assertThat(this.converter.getDefaultContentType(this.testMsg))
|
||||||
|
.isEqualTo(ProtobufHttpMessageConverter.PROTOBUF);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -94,7 +94,8 @@ public class MappingJackson2SmileHttpMessageConverterTests {
|
||||||
body.setBytes(new byte[]{0x1, 0x2});
|
body.setBytes(new byte[]{0x1, 0x2});
|
||||||
converter.write(body, null, outputMessage);
|
converter.write(body, null, outputMessage);
|
||||||
assertThat(outputMessage.getBodyAsBytes()).isEqualTo(mapper.writeValueAsBytes(body));
|
assertThat(outputMessage.getBodyAsBytes()).isEqualTo(mapper.writeValueAsBytes(body));
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "x-jackson-smile"));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(new MediaType("application", "x-jackson-smile"));
|
||||||
verify(outputMessage.getBody(), never()).close();
|
verify(outputMessage.getBody(), never()).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,7 @@ public class Jaxb2CollectionHttpMessageConverterTests {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void readXmlRootElementSet() throws Exception {
|
public void readXmlRootElementSet() throws Exception {
|
||||||
String content = "<set><rootElement><type s=\"1\"/></rootElement><rootElement><type s=\"2\"/></rootElement></set>";
|
String content = "<set><rootElement><type s=\"1\"/></rootElement><rootElement><type s=\"2\"/></rootElement></set>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
Set<RootElement> result = (Set<RootElement>) converter.read(rootElementSetType, null, inputMessage);
|
Set<RootElement> result = (Set<RootElement>) converter.read(rootElementSetType, null, inputMessage);
|
||||||
|
|
||||||
assertThat(result.size()).as("Invalid result").isEqualTo(2);
|
assertThat(result.size()).as("Invalid result").isEqualTo(2);
|
||||||
|
@ -111,7 +111,7 @@ public class Jaxb2CollectionHttpMessageConverterTests {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void readXmlTypeList() throws Exception {
|
public void readXmlTypeList() throws Exception {
|
||||||
String content = "<list><foo s=\"1\"/><bar s=\"2\"/></list>";
|
String content = "<list><foo s=\"1\"/><bar s=\"2\"/></list>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
List<TestType> result = (List<TestType>) converter.read(typeListType, null, inputMessage);
|
List<TestType> result = (List<TestType>) converter.read(typeListType, null, inputMessage);
|
||||||
|
|
||||||
assertThat(result.size()).as("Invalid result").isEqualTo(2);
|
assertThat(result.size()).as("Invalid result").isEqualTo(2);
|
||||||
|
@ -123,7 +123,7 @@ public class Jaxb2CollectionHttpMessageConverterTests {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void readXmlTypeSet() throws Exception {
|
public void readXmlTypeSet() throws Exception {
|
||||||
String content = "<set><foo s=\"1\"/><bar s=\"2\"/></set>";
|
String content = "<set><foo s=\"1\"/><bar s=\"2\"/></set>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
Set<TestType> result = (Set<TestType>) converter.read(typeSetType, null, inputMessage);
|
Set<TestType> result = (Set<TestType>) converter.read(typeSetType, null, inputMessage);
|
||||||
|
|
||||||
assertThat(result.size()).as("Invalid result").isEqualTo(2);
|
assertThat(result.size()).as("Invalid result").isEqualTo(2);
|
||||||
|
@ -139,7 +139,7 @@ public class Jaxb2CollectionHttpMessageConverterTests {
|
||||||
" <!ELEMENT external ANY >\n" +
|
" <!ELEMENT external ANY >\n" +
|
||||||
" <!ENTITY ext SYSTEM \"" + external.getURI() + "\" >]>" +
|
" <!ENTITY ext SYSTEM \"" + external.getURI() + "\" >]>" +
|
||||||
" <list><rootElement><type s=\"1\"/><external>&ext;</external></rootElement></list>";
|
" <list><rootElement><type s=\"1\"/><external>&ext;</external></rootElement></list>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
|
|
||||||
converter = new Jaxb2CollectionHttpMessageConverter<Collection<Object>>() {
|
converter = new Jaxb2CollectionHttpMessageConverter<Collection<Object>>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -168,7 +168,7 @@ public class Jaxb2CollectionHttpMessageConverterTests {
|
||||||
" <!ELEMENT external ANY >\n" +
|
" <!ELEMENT external ANY >\n" +
|
||||||
" <!ENTITY ext SYSTEM \"" + external.getURI() + "\" >]>" +
|
" <!ENTITY ext SYSTEM \"" + external.getURI() + "\" >]>" +
|
||||||
" <list><rootElement><type s=\"1\"/><external>&ext;</external></rootElement></list>";
|
" <list><rootElement><type s=\"1\"/><external>&ext;</external></rootElement></list>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
|
|
||||||
Jaxb2CollectionHttpMessageConverter<?> c = new Jaxb2CollectionHttpMessageConverter<Collection<Object>>() {
|
Jaxb2CollectionHttpMessageConverter<?> c = new Jaxb2CollectionHttpMessageConverter<Collection<Object>>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -203,10 +203,10 @@ public class Jaxb2CollectionHttpMessageConverterTests {
|
||||||
" <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n" +
|
" <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n" +
|
||||||
"]>\n" +
|
"]>\n" +
|
||||||
"<list><rootElement><external>&lol9;</external></rootElement></list>";
|
"<list><rootElement><external>&lol9;</external></rootElement></list>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class)
|
||||||
this.converter.read(this.rootElementListType, null, inputMessage))
|
.isThrownBy(() -> this.converter.read(this.rootElementListType, null, inputMessage))
|
||||||
.withMessageContaining("\"lol9\"");
|
.withMessageContaining("\"lol9\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -85,21 +85,27 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void canRead() {
|
public void canRead() {
|
||||||
assertThat(converter.canRead(RootElement.class, null)).as("Converter does not support reading @XmlRootElement").isTrue();
|
assertThat(converter.canRead(RootElement.class, null))
|
||||||
assertThat(converter.canRead(Type.class, null)).as("Converter does not support reading @XmlType").isTrue();
|
.as("Converter does not support reading @XmlRootElement").isTrue();
|
||||||
|
assertThat(converter.canRead(Type.class, null))
|
||||||
|
.as("Converter does not support reading @XmlType").isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void canWrite() {
|
public void canWrite() {
|
||||||
assertThat(converter.canWrite(RootElement.class, null)).as("Converter does not support writing @XmlRootElement").isTrue();
|
assertThat(converter.canWrite(RootElement.class, null))
|
||||||
assertThat(converter.canWrite(RootElementSubclass.class, null)).as("Converter does not support writing @XmlRootElement subclass").isTrue();
|
.as("Converter does not support writing @XmlRootElement").isTrue();
|
||||||
assertThat(converter.canWrite(rootElementCglib.getClass(), null)).as("Converter does not support writing @XmlRootElement subclass").isTrue();
|
assertThat(converter.canWrite(RootElementSubclass.class, null))
|
||||||
assertThat(converter.canWrite(Type.class, null)).as("Converter supports writing @XmlType").isFalse();
|
.as("Converter does not support writing @XmlRootElement subclass").isTrue();
|
||||||
|
assertThat(converter.canWrite(rootElementCglib.getClass(), null))
|
||||||
|
.as("Converter does not support writing @XmlRootElement subclass").isTrue();
|
||||||
|
assertThat(converter.canWrite(Type.class, null))
|
||||||
|
.as("Converter supports writing @XmlType").isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readXmlRootElement() throws Exception {
|
public void readXmlRootElement() throws Exception {
|
||||||
byte[] body = "<rootElement><type s=\"Hello World\"/></rootElement>".getBytes("UTF-8");
|
byte[] body = "<rootElement><type s=\"Hello World\"/></rootElement>".getBytes(StandardCharsets.UTF_8);
|
||||||
InputStream inputStream = spy(new ByteArrayInputStream(body));
|
InputStream inputStream = spy(new ByteArrayInputStream(body));
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(inputStream);
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(inputStream);
|
||||||
RootElement result = (RootElement) converter.read(RootElement.class, inputMessage);
|
RootElement result = (RootElement) converter.read(RootElement.class, inputMessage);
|
||||||
|
@ -109,7 +115,7 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readXmlRootElementSubclass() throws Exception {
|
public void readXmlRootElementSubclass() throws Exception {
|
||||||
byte[] body = "<rootElement><type s=\"Hello World\"/></rootElement>".getBytes("UTF-8");
|
byte[] body = "<rootElement><type s=\"Hello World\"/></rootElement>".getBytes(StandardCharsets.UTF_8);
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
|
||||||
RootElementSubclass result = (RootElementSubclass) converter.read(RootElementSubclass.class, inputMessage);
|
RootElementSubclass result = (RootElementSubclass) converter.read(RootElementSubclass.class, inputMessage);
|
||||||
assertThat(result.getType().s).as("Invalid result").isEqualTo("Hello World");
|
assertThat(result.getType().s).as("Invalid result").isEqualTo("Hello World");
|
||||||
|
@ -117,7 +123,7 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readXmlType() throws Exception {
|
public void readXmlType() throws Exception {
|
||||||
byte[] body = "<foo s=\"Hello World\"/>".getBytes("UTF-8");
|
byte[] body = "<foo s=\"Hello World\"/>".getBytes(StandardCharsets.UTF_8);
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
|
||||||
Type result = (Type) converter.read(Type.class, inputMessage);
|
Type result = (Type) converter.read(Type.class, inputMessage);
|
||||||
assertThat(result.s).as("Invalid result").isEqualTo("Hello World");
|
assertThat(result.s).as("Invalid result").isEqualTo("Hello World");
|
||||||
|
@ -130,7 +136,7 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
" <!ELEMENT external ANY >\n" +
|
" <!ELEMENT external ANY >\n" +
|
||||||
" <!ENTITY ext SYSTEM \"" + external.getURI() + "\" >]>" +
|
" <!ENTITY ext SYSTEM \"" + external.getURI() + "\" >]>" +
|
||||||
" <rootElement><external>&ext;</external></rootElement>";
|
" <rootElement><external>&ext;</external></rootElement>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
converter.setSupportDtd(true);
|
converter.setSupportDtd(true);
|
||||||
RootElement rootElement = (RootElement) converter.read(RootElement.class, inputMessage);
|
RootElement rootElement = (RootElement) converter.read(RootElement.class, inputMessage);
|
||||||
|
|
||||||
|
@ -144,7 +150,7 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
" <!ELEMENT external ANY >\n" +
|
" <!ELEMENT external ANY >\n" +
|
||||||
" <!ENTITY ext SYSTEM \"" + external.getURI() + "\" >]>" +
|
" <!ENTITY ext SYSTEM \"" + external.getURI() + "\" >]>" +
|
||||||
" <rootElement><external>&ext;</external></rootElement>";
|
" <rootElement><external>&ext;</external></rootElement>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
this.converter.setProcessExternalEntities(true);
|
this.converter.setProcessExternalEntities(true);
|
||||||
RootElement rootElement = (RootElement) converter.read(RootElement.class, inputMessage);
|
RootElement rootElement = (RootElement) converter.read(RootElement.class, inputMessage);
|
||||||
|
|
||||||
|
@ -170,7 +176,7 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
" <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n" +
|
" <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n" +
|
||||||
"]>\n" +
|
"]>\n" +
|
||||||
"<rootElement><external>&lol9;</external></rootElement>";
|
"<rootElement><external>&lol9;</external></rootElement>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
||||||
this.converter.read(RootElement.class, inputMessage))
|
this.converter.read(RootElement.class, inputMessage))
|
||||||
.withMessageContaining("DOCTYPE");
|
.withMessageContaining("DOCTYPE");
|
||||||
|
@ -180,7 +186,8 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
public void writeXmlRootElement() throws Exception {
|
public void writeXmlRootElement() throws Exception {
|
||||||
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
||||||
converter.write(rootElement, null, outputMessage);
|
converter.write(rootElement, null, outputMessage);
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "xml"));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(MediaType.APPLICATION_XML);
|
||||||
DifferenceEvaluator ev = chain(Default, downgradeDifferencesToEqual(XML_STANDALONE));
|
DifferenceEvaluator ev = chain(Default, downgradeDifferencesToEqual(XML_STANDALONE));
|
||||||
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
||||||
.isSimilarTo("<rootElement><type s=\"Hello World\"/></rootElement>", ev);
|
.isSimilarTo("<rootElement><type s=\"Hello World\"/></rootElement>", ev);
|
||||||
|
@ -191,7 +198,8 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
public void writeXmlRootElementSubclass() throws Exception {
|
public void writeXmlRootElementSubclass() throws Exception {
|
||||||
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
MockHttpOutputMessage outputMessage = new MockHttpOutputMessage();
|
||||||
converter.write(rootElementCglib, null, outputMessage);
|
converter.write(rootElementCglib, null, outputMessage);
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "xml"));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(MediaType.APPLICATION_XML);
|
||||||
DifferenceEvaluator ev = chain(Default, downgradeDifferencesToEqual(XML_STANDALONE));
|
DifferenceEvaluator ev = chain(Default, downgradeDifferencesToEqual(XML_STANDALONE));
|
||||||
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
||||||
.isSimilarTo("<rootElement><type s=\"Hello World\"/></rootElement>", ev);
|
.isSimilarTo("<rootElement><type s=\"Hello World\"/></rootElement>", ev);
|
||||||
|
@ -211,7 +219,7 @@ public class Jaxb2RootElementHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void customizeUnmarshaller() throws Exception {
|
public void customizeUnmarshaller() throws Exception {
|
||||||
byte[] body = "<myRootElement><element>a|||b</element></myRootElement>".getBytes("UTF-8");
|
byte[] body = "<myRootElement><element>a|||b</element></myRootElement>".getBytes(StandardCharsets.UTF_8);
|
||||||
MyJaxb2RootElementHttpMessageConverter myConverter = new MyJaxb2RootElementHttpMessageConverter();
|
MyJaxb2RootElementHttpMessageConverter myConverter = new MyJaxb2RootElementHttpMessageConverter();
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
|
||||||
MyRootElement result = (MyRootElement) myConverter.read(MyRootElement.class, inputMessage);
|
MyRootElement result = (MyRootElement) myConverter.read(MyRootElement.class, inputMessage);
|
||||||
|
|
|
@ -110,15 +110,16 @@ public class MappingJackson2XmlHttpMessageConverterTests {
|
||||||
assertThat(result.contains("<array><array>Foo</array><array>Bar</array></array>")).isTrue();
|
assertThat(result.contains("<array><array>Foo</array><array>Bar</array></array>")).isTrue();
|
||||||
assertThat(result.contains("<bool>true</bool>")).isTrue();
|
assertThat(result.contains("<bool>true</bool>")).isTrue();
|
||||||
assertThat(result.contains("<bytes>AQI=</bytes>")).isTrue();
|
assertThat(result.contains("<bytes>AQI=</bytes>")).isTrue();
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "xml", StandardCharsets.UTF_8));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(new MediaType("application", "xml", StandardCharsets.UTF_8));
|
||||||
verify(outputMessage.getBody(), never()).close();
|
verify(outputMessage.getBody(), never()).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readInvalidXml() throws IOException {
|
public void readInvalidXml() throws IOException {
|
||||||
String body = "FooBar";
|
String body = "FooBar";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
||||||
converter.read(MyBean.class, inputMessage));
|
converter.read(MyBean.class, inputMessage));
|
||||||
}
|
}
|
||||||
|
@ -126,8 +127,8 @@ public class MappingJackson2XmlHttpMessageConverterTests {
|
||||||
@Test
|
@Test
|
||||||
public void readValidXmlWithUnknownProperty() throws IOException {
|
public void readValidXmlWithUnknownProperty() throws IOException {
|
||||||
String body = "<MyBean><string>string</string><unknownProperty>value</unknownProperty></MyBean>";
|
String body = "<MyBean><string>string</string><unknownProperty>value</unknownProperty></MyBean>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
converter.read(MyBean.class, inputMessage);
|
converter.read(MyBean.class, inputMessage);
|
||||||
// Assert no HttpMessageNotReadableException is thrown
|
// Assert no HttpMessageNotReadableException is thrown
|
||||||
}
|
}
|
||||||
|
@ -164,8 +165,8 @@ public class MappingJackson2XmlHttpMessageConverterTests {
|
||||||
new ClassPathResource("external.txt", getClass()).getURI() +
|
new ClassPathResource("external.txt", getClass()).getURI() +
|
||||||
"\" >]><MyBean><string>&ext;</string></MyBean>";
|
"\" >]><MyBean><string>&ext;</string></MyBean>";
|
||||||
|
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
|
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
||||||
this.converter.read(MyBean.class, inputMessage));
|
this.converter.read(MyBean.class, inputMessage));
|
||||||
|
@ -191,8 +192,8 @@ public class MappingJackson2XmlHttpMessageConverterTests {
|
||||||
"]>\n" +
|
"]>\n" +
|
||||||
"<MyBean>&lol9;</MyBean>";
|
"<MyBean>&lol9;</MyBean>";
|
||||||
|
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(body.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
|
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
||||||
this.converter.read(MyBean.class, inputMessage));
|
this.converter.read(MyBean.class, inputMessage));
|
||||||
|
|
|
@ -108,12 +108,12 @@ public class MarshallingHttpMessageConverterTests {
|
||||||
|
|
||||||
Marshaller marshaller = mock(Marshaller.class);
|
Marshaller marshaller = mock(Marshaller.class);
|
||||||
Unmarshaller unmarshaller = mock(Unmarshaller.class);
|
Unmarshaller unmarshaller = mock(Unmarshaller.class);
|
||||||
given(unmarshaller.unmarshal(isA(StreamSource.class))).willReturn(Integer.valueOf(3));
|
given(unmarshaller.unmarshal(isA(StreamSource.class))).willReturn(3);
|
||||||
|
|
||||||
MarshallingHttpMessageConverter converter = new MarshallingHttpMessageConverter(marshaller, unmarshaller);
|
MarshallingHttpMessageConverter converter = new MarshallingHttpMessageConverter(marshaller, unmarshaller);
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class)
|
||||||
converter.read(String.class, inputMessage))
|
.isThrownBy(() -> converter.read(String.class, inputMessage))
|
||||||
.withCauseInstanceOf(TypeMismatchException.class);
|
.withCauseInstanceOf(TypeMismatchException.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -127,9 +127,8 @@ public class MarshallingHttpMessageConverterTests {
|
||||||
MarshallingHttpMessageConverter converter = new MarshallingHttpMessageConverter();
|
MarshallingHttpMessageConverter converter = new MarshallingHttpMessageConverter();
|
||||||
converter.setUnmarshaller(unmarshaller);
|
converter.setUnmarshaller(unmarshaller);
|
||||||
|
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class)
|
||||||
converter.read(Object.class, inputMessage))
|
.isThrownBy(() -> converter.read(Object.class, inputMessage)).withCause(ex);
|
||||||
.withCause(ex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -143,7 +142,8 @@ public class MarshallingHttpMessageConverterTests {
|
||||||
MarshallingHttpMessageConverter converter = new MarshallingHttpMessageConverter(marshaller);
|
MarshallingHttpMessageConverter converter = new MarshallingHttpMessageConverter(marshaller);
|
||||||
converter.write(body, null, outputMessage);
|
converter.write(body, null, outputMessage);
|
||||||
|
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "xml"));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(new MediaType("application", "xml"));
|
||||||
verify(outputMessage.getBody(), never()).close();
|
verify(outputMessage.getBody(), never()).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,13 +157,12 @@ public class MarshallingHttpMessageConverterTests {
|
||||||
willThrow(ex).given(marshaller).marshal(eq(body), isA(Result.class));
|
willThrow(ex).given(marshaller).marshal(eq(body), isA(Result.class));
|
||||||
|
|
||||||
MarshallingHttpMessageConverter converter = new MarshallingHttpMessageConverter(marshaller);
|
MarshallingHttpMessageConverter converter = new MarshallingHttpMessageConverter(marshaller);
|
||||||
assertThatExceptionOfType(HttpMessageNotWritableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotWritableException.class)
|
||||||
converter.write(body, null, outputMessage))
|
.isThrownBy(() -> converter.write(body, null, outputMessage)).withCause(ex);
|
||||||
.withCause(ex);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void supports() throws Exception {
|
public void supports() {
|
||||||
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() ->
|
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() ->
|
||||||
new MarshallingHttpMessageConverter().supports(Object.class));
|
new MarshallingHttpMessageConverter().supports(Object.class));
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,9 +95,9 @@ public class SourceHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readDOMSource() throws Exception {
|
public void readDOMSource() throws Exception {
|
||||||
InputStream inputStream = spy(new ByteArrayInputStream(BODY.getBytes("UTF-8")));
|
InputStream inputStream = spy(new ByteArrayInputStream(BODY.getBytes(StandardCharsets.UTF_8)));
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(inputStream);
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(inputStream);
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
DOMSource result = (DOMSource) converter.read(DOMSource.class, inputMessage);
|
DOMSource result = (DOMSource) converter.read(DOMSource.class, inputMessage);
|
||||||
Document document = (Document) result.getNode();
|
Document document = (Document) result.getNode();
|
||||||
assertThat(document.getDocumentElement().getLocalName()).as("Invalid result").isEqualTo("root");
|
assertThat(document.getDocumentElement().getLocalName()).as("Invalid result").isEqualTo("root");
|
||||||
|
@ -106,8 +106,8 @@ public class SourceHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readDOMSourceExternal() throws Exception {
|
public void readDOMSourceExternal() throws Exception {
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(bodyExternal.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(bodyExternal.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
converter.setSupportDtd(true);
|
converter.setSupportDtd(true);
|
||||||
DOMSource result = (DOMSource) converter.read(DOMSource.class, inputMessage);
|
DOMSource result = (DOMSource) converter.read(DOMSource.class, inputMessage);
|
||||||
Document document = (Document) result.getNode();
|
Document document = (Document) result.getNode();
|
||||||
|
@ -134,7 +134,7 @@ public class SourceHttpMessageConverterTests {
|
||||||
" <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n" +
|
" <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n" +
|
||||||
"]>\n" +
|
"]>\n" +
|
||||||
"<root>&lol9;</root>";
|
"<root>&lol9;</root>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
|
|
||||||
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
assertThatExceptionOfType(HttpMessageNotReadableException.class).isThrownBy(() ->
|
||||||
this.converter.read(DOMSource.class, inputMessage))
|
this.converter.read(DOMSource.class, inputMessage))
|
||||||
|
@ -143,8 +143,8 @@ public class SourceHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readSAXSource() throws Exception {
|
public void readSAXSource() throws Exception {
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(BODY.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(BODY.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
SAXSource result = (SAXSource) converter.read(SAXSource.class, inputMessage);
|
SAXSource result = (SAXSource) converter.read(SAXSource.class, inputMessage);
|
||||||
InputSource inputSource = result.getInputSource();
|
InputSource inputSource = result.getInputSource();
|
||||||
String s = FileCopyUtils.copyToString(new InputStreamReader(inputSource.getByteStream()));
|
String s = FileCopyUtils.copyToString(new InputStreamReader(inputSource.getByteStream()));
|
||||||
|
@ -153,8 +153,8 @@ public class SourceHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readSAXSourceExternal() throws Exception {
|
public void readSAXSourceExternal() throws Exception {
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(bodyExternal.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(bodyExternal.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
converter.setSupportDtd(true);
|
converter.setSupportDtd(true);
|
||||||
SAXSource result = (SAXSource) converter.read(SAXSource.class, inputMessage);
|
SAXSource result = (SAXSource) converter.read(SAXSource.class, inputMessage);
|
||||||
InputSource inputSource = result.getInputSource();
|
InputSource inputSource = result.getInputSource();
|
||||||
|
@ -189,20 +189,19 @@ public class SourceHttpMessageConverterTests {
|
||||||
"]>\n" +
|
"]>\n" +
|
||||||
"<root>&lol9;</root>";
|
"<root>&lol9;</root>";
|
||||||
|
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
SAXSource result = (SAXSource) this.converter.read(SAXSource.class, inputMessage);
|
SAXSource result = (SAXSource) this.converter.read(SAXSource.class, inputMessage);
|
||||||
|
|
||||||
InputSource inputSource = result.getInputSource();
|
InputSource inputSource = result.getInputSource();
|
||||||
XMLReader reader = result.getXMLReader();
|
XMLReader reader = result.getXMLReader();
|
||||||
assertThatExceptionOfType(SAXException.class).isThrownBy(() ->
|
assertThatExceptionOfType(SAXException.class)
|
||||||
reader.parse(inputSource))
|
.isThrownBy(() -> reader.parse(inputSource)).withMessageContaining("DOCTYPE");
|
||||||
.withMessageContaining("DOCTYPE");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readStAXSource() throws Exception {
|
public void readStAXSource() throws Exception {
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(BODY.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(BODY.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
StAXSource result = (StAXSource) converter.read(StAXSource.class, inputMessage);
|
StAXSource result = (StAXSource) converter.read(StAXSource.class, inputMessage);
|
||||||
XMLStreamReader streamReader = result.getXMLStreamReader();
|
XMLStreamReader streamReader = result.getXMLStreamReader();
|
||||||
assertThat(streamReader.hasNext()).isTrue();
|
assertThat(streamReader.hasNext()).isTrue();
|
||||||
|
@ -216,8 +215,8 @@ public class SourceHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readStAXSourceExternal() throws Exception {
|
public void readStAXSourceExternal() throws Exception {
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(bodyExternal.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(bodyExternal.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
converter.setSupportDtd(true);
|
converter.setSupportDtd(true);
|
||||||
StAXSource result = (StAXSource) converter.read(StAXSource.class, inputMessage);
|
StAXSource result = (StAXSource) converter.read(StAXSource.class, inputMessage);
|
||||||
XMLStreamReader streamReader = result.getXMLStreamReader();
|
XMLStreamReader streamReader = result.getXMLStreamReader();
|
||||||
|
@ -255,7 +254,7 @@ public class SourceHttpMessageConverterTests {
|
||||||
" <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n" +
|
" <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n" +
|
||||||
"]>\n" +
|
"]>\n" +
|
||||||
"<root>&lol9;</root>";
|
"<root>&lol9;</root>";
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(content.getBytes(StandardCharsets.UTF_8));
|
||||||
StAXSource result = (StAXSource) this.converter.read(StAXSource.class, inputMessage);
|
StAXSource result = (StAXSource) this.converter.read(StAXSource.class, inputMessage);
|
||||||
|
|
||||||
XMLStreamReader streamReader = result.getXMLStreamReader();
|
XMLStreamReader streamReader = result.getXMLStreamReader();
|
||||||
|
@ -264,15 +263,14 @@ public class SourceHttpMessageConverterTests {
|
||||||
streamReader.next();
|
streamReader.next();
|
||||||
String s = streamReader.getLocalName();
|
String s = streamReader.getLocalName();
|
||||||
assertThat(s).isEqualTo("root");
|
assertThat(s).isEqualTo("root");
|
||||||
assertThatExceptionOfType(XMLStreamException.class).isThrownBy(() ->
|
assertThatExceptionOfType(XMLStreamException.class)
|
||||||
streamReader.getElementText())
|
.isThrownBy(streamReader::getElementText).withMessageContaining("\"lol9\"");
|
||||||
.withMessageContaining("\"lol9\"");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readStreamSource() throws Exception {
|
public void readStreamSource() throws Exception {
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(BODY.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(BODY.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
StreamSource result = (StreamSource) converter.read(StreamSource.class, inputMessage);
|
StreamSource result = (StreamSource) converter.read(StreamSource.class, inputMessage);
|
||||||
String s = FileCopyUtils.copyToString(new InputStreamReader(result.getInputStream()));
|
String s = FileCopyUtils.copyToString(new InputStreamReader(result.getInputStream()));
|
||||||
assertThat(XmlContent.of(s)).isSimilarTo(BODY);
|
assertThat(XmlContent.of(s)).isSimilarTo(BODY);
|
||||||
|
@ -280,8 +278,8 @@ public class SourceHttpMessageConverterTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readSource() throws Exception {
|
public void readSource() throws Exception {
|
||||||
MockHttpInputMessage inputMessage = new MockHttpInputMessage(BODY.getBytes("UTF-8"));
|
MockHttpInputMessage inputMessage = new MockHttpInputMessage(BODY.getBytes(StandardCharsets.UTF_8));
|
||||||
inputMessage.getHeaders().setContentType(new MediaType("application", "xml"));
|
inputMessage.getHeaders().setContentType(MediaType.APPLICATION_XML);
|
||||||
converter.read(Source.class, inputMessage);
|
converter.read(Source.class, inputMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,8 +297,10 @@ public class SourceHttpMessageConverterTests {
|
||||||
converter.write(domSource, null, outputMessage);
|
converter.write(domSource, null, outputMessage);
|
||||||
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
||||||
.isSimilarTo("<root>Hello World</root>");
|
.isSimilarTo("<root>Hello World</root>");
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "xml"));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
assertThat(outputMessage.getHeaders().getContentLength()).as("Invalid content-length").isEqualTo(outputMessage.getBodyAsBytes().length);
|
.as("Invalid content-type").isEqualTo(MediaType.APPLICATION_XML);
|
||||||
|
assertThat(outputMessage.getHeaders().getContentLength())
|
||||||
|
.as("Invalid content-length").isEqualTo(outputMessage.getBodyAsBytes().length);
|
||||||
verify(outputMessage.getBody(), never()).close();
|
verify(outputMessage.getBody(), never()).close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -313,7 +313,8 @@ public class SourceHttpMessageConverterTests {
|
||||||
converter.write(saxSource, null, outputMessage);
|
converter.write(saxSource, null, outputMessage);
|
||||||
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
||||||
.isSimilarTo("<root>Hello World</root>");
|
.isSimilarTo("<root>Hello World</root>");
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "xml"));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(MediaType.APPLICATION_XML);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -325,7 +326,8 @@ public class SourceHttpMessageConverterTests {
|
||||||
converter.write(streamSource, null, outputMessage);
|
converter.write(streamSource, null, outputMessage);
|
||||||
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
assertThat(XmlContent.of(outputMessage.getBodyAsString(StandardCharsets.UTF_8)))
|
||||||
.isSimilarTo("<root>Hello World</root>");
|
.isSimilarTo("<root>Hello World</root>");
|
||||||
assertThat(outputMessage.getHeaders().getContentType()).as("Invalid content-type").isEqualTo(new MediaType("application", "xml"));
|
assertThat(outputMessage.getHeaders().getContentType())
|
||||||
|
.as("Invalid content-type").isEqualTo(MediaType.APPLICATION_XML);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue