Polish contribution and related code
This commit is contained in:
@@ -16,12 +16,11 @@
|
||||
|
||||
package org.springframework.messaging.converter;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.protobuf.ExtensionRegistry;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.skyscreamer.jsonassert.JSONAssert;
|
||||
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.MessageHeaders;
|
||||
@@ -35,113 +34,90 @@ import static org.springframework.messaging.MessageHeaders.CONTENT_TYPE;
|
||||
import static org.springframework.util.MimeTypeUtils.APPLICATION_JSON;
|
||||
|
||||
/**
|
||||
* Test suite for {@link ProtobufMessageConverter}.
|
||||
* Tests for {@link ProtobufMessageConverter}.
|
||||
*
|
||||
* @author Parviz Rozikov
|
||||
* @author Sam Brannen
|
||||
*/
|
||||
public class ProtobufMessageConverterTests {
|
||||
class ProtobufMessageConverterTests {
|
||||
|
||||
private ProtobufMessageConverter converter;
|
||||
private final ProtobufMessageConverter converter = new ProtobufMessageConverter();
|
||||
|
||||
private ExtensionRegistry extensionRegistry;
|
||||
private Msg testMsg = Msg.newBuilder().setFoo("Foo").setBlah(SecondMsg.newBuilder().setBlah(123).build()).build();
|
||||
|
||||
private Msg testMsg;
|
||||
private Message<byte[]> message = MessageBuilder.withPayload(this.testMsg.toByteArray())
|
||||
.setHeader(CONTENT_TYPE, ProtobufMessageConverter.PROTOBUF).build();
|
||||
|
||||
private Message<byte[]> message;
|
||||
private Message<byte[]> messageWithoutContentType = MessageBuilder.withPayload(this.testMsg.toByteArray()).build();
|
||||
|
||||
private Message<byte[]> messageWithoutContentType;
|
||||
|
||||
private Message<String> messageJson;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup() {
|
||||
this.extensionRegistry = mock(ExtensionRegistry.class);
|
||||
this.converter = new ProtobufMessageConverter();
|
||||
this.testMsg = Msg.newBuilder().setFoo("Foo").setBlah(SecondMsg.newBuilder().setBlah(123).build()).build();
|
||||
this.message = MessageBuilder.withPayload(this.testMsg.toByteArray())
|
||||
.setHeader(CONTENT_TYPE, ProtobufMessageConverter.PROTOBUF).build();
|
||||
this.messageWithoutContentType = MessageBuilder.withPayload(this.testMsg.toByteArray()).build();
|
||||
this.messageJson = MessageBuilder.withPayload("""
|
||||
{
|
||||
"foo": "Foo",
|
||||
"blah": {
|
||||
"blah": 123
|
||||
}
|
||||
}""".replace("\t", " "))
|
||||
.setHeader(CONTENT_TYPE, APPLICATION_JSON)
|
||||
.build();
|
||||
}
|
||||
private final Message<String> messageJson = MessageBuilder.withPayload("""
|
||||
{
|
||||
"foo": "Foo",
|
||||
"blah": {
|
||||
"blah": 123
|
||||
}
|
||||
}
|
||||
""")
|
||||
.setHeader(CONTENT_TYPE, APPLICATION_JSON)
|
||||
.build();
|
||||
|
||||
|
||||
@Test
|
||||
public void extensionRegistryNull() {
|
||||
void extensionRegistryNull() {
|
||||
ProtobufMessageConverter converter = new ProtobufMessageConverter(null);
|
||||
assertThat(converter.extensionRegistry).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultContentType() {
|
||||
assertThat(converter.getDefaultContentType(testMsg)).isEqualTo(ProtobufMessageConverter.PROTOBUF);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void canConvertFrom() {
|
||||
void canConvertFrom() {
|
||||
assertThat(converter.canConvertFrom(message, Msg.class)).isTrue();
|
||||
assertThat(converter.canConvertFrom(messageWithoutContentType, Msg.class)).isTrue();
|
||||
assertThat(converter.canConvertFrom(messageJson, Msg.class)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void canConvertTo() {
|
||||
void canConvertTo() {
|
||||
assertThat(converter.canConvertTo(testMsg, message.getHeaders())).isTrue();
|
||||
assertThat(converter.canConvertTo(testMsg, messageWithoutContentType.getHeaders())).isTrue();
|
||||
assertThat(converter.canConvertTo(testMsg, messageJson.getHeaders())).isTrue();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void convertFrom() {
|
||||
final Msg msg = (Msg) converter.fromMessage(message, Msg.class);
|
||||
assertThat(msg).isEqualTo(testMsg);
|
||||
void convertFrom() {
|
||||
assertThat(converter.fromMessage(message, Msg.class)).isEqualTo(testMsg);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertTo() {
|
||||
final Message<?> message = converter.toMessage(this.testMsg, this.message.getHeaders());
|
||||
void convertFromNoContentType(){
|
||||
assertThat(converter.fromMessage(messageWithoutContentType, Msg.class)).isEqualTo(testMsg);
|
||||
}
|
||||
|
||||
@Test
|
||||
void convertTo() {
|
||||
Message<?> message = converter.toMessage(testMsg, this.message.getHeaders());
|
||||
assertThat(message).isNotNull();
|
||||
assertThat(message.getPayload()).isEqualTo(this.message.getPayload());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void convertFromNoContentType(){
|
||||
Msg result = (Msg) converter.fromMessage(messageWithoutContentType, Msg.class);
|
||||
assertThat(result).isEqualTo(testMsg);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void defaultContentType() {
|
||||
assertThat(converter.getDefaultContentType(testMsg)).isEqualTo(ProtobufMessageConverter.PROTOBUF);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJsonWithGoogleProtobuf() {
|
||||
this.converter = new ProtobufMessageConverter(
|
||||
void jsonWithGoogleProtobuf() throws Exception {
|
||||
ProtobufMessageConverter converter = new ProtobufMessageConverter(
|
||||
new ProtobufMessageConverter.ProtobufJavaUtilSupport(null, null),
|
||||
extensionRegistry);
|
||||
|
||||
final Map<String, Object> headers = new HashMap<>();
|
||||
headers.put(CONTENT_TYPE, APPLICATION_JSON);
|
||||
mock(ExtensionRegistry.class));
|
||||
|
||||
//convertTo
|
||||
final Message<?> message = this.converter.toMessage(this.testMsg, new MessageHeaders(headers));
|
||||
Message<?> message = converter.toMessage(testMsg, new MessageHeaders(Map.of(CONTENT_TYPE, APPLICATION_JSON)));
|
||||
assertThat(message).isNotNull();
|
||||
assertThat(message.getHeaders().get(CONTENT_TYPE)).isEqualTo(APPLICATION_JSON);
|
||||
assertThat(((String) message.getPayload()).length() > 0).isTrue();
|
||||
assertThat(((String) message.getPayload()).isEmpty()).as("Body is empty").isFalse();
|
||||
assertThat(((String) message.getPayload())).isEqualTo(this.messageJson.getPayload());
|
||||
JSONAssert.assertEquals(messageJson.getPayload(), message.getPayload().toString(), true);
|
||||
|
||||
//convertFrom
|
||||
final Msg msg = (Msg) converter.fromMessage(message, Msg.class);
|
||||
assertThat(msg).isEqualTo(this.testMsg);
|
||||
assertThat(converter.fromMessage(message, Msg.class)).isEqualTo(testMsg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user