From 795aadc7b5001bbf5c4e7753038b0bbf0b51ca8a Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 18 Dec 2018 12:53:44 +0100 Subject: [PATCH] Added additional ContentType TCK tests Added tests to make sure that application/json CT will result in String conversion in the event the actual type can not be determined --- .../binder/tck/ContentTypeTckTests.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/tck/ContentTypeTckTests.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/tck/ContentTypeTckTests.java index 298919574..7e066fbed 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/tck/ContentTypeTckTests.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/tck/ContentTypeTckTests.java @@ -232,6 +232,20 @@ public class ContentTypeTckTests { assertEquals(jsonPayload, new String(outputMessage.getPayload(), StandardCharsets.UTF_8)); } + @Test + public void typelessToPojoInboundContentTypeBindingJson() { + ApplicationContext context = new SpringApplicationBuilder(TypelessToPojoStreamListener.class) + .web(WebApplicationType.NONE) + .run("--spring.cloud.stream.bindings.input.contentType=application/json", "--spring.jmx.enabled=false"); + InputDestination source = context.getBean(InputDestination.class); + OutputDestination target = context.getBean(OutputDestination.class); + String jsonPayload = "{\"name\":\"oleg\"}"; + source.send(new GenericMessage<>(jsonPayload.getBytes())); + Message outputMessage = target.receive(); + assertEquals(MimeTypeUtils.APPLICATION_JSON, outputMessage.getHeaders().get(MessageHeaders.CONTENT_TYPE)); + assertEquals(jsonPayload, new String(outputMessage.getPayload(), StandardCharsets.UTF_8)); + } + @Test public void typelessMessageToPojoInboundContentTypeBinding() { ApplicationContext context = new SpringApplicationBuilder(TypelessMessageToPojoStreamListener.class) @@ -246,6 +260,20 @@ public class ContentTypeTckTests { assertEquals(jsonPayload, new String(outputMessage.getPayload(), StandardCharsets.UTF_8)); } + @Test + public void typelessMessageToPojoInboundContentTypeBindingJson() { + ApplicationContext context = new SpringApplicationBuilder(TypelessMessageToPojoStreamListener.class) + .web(WebApplicationType.NONE) + .run("--spring.cloud.stream.bindings.input.contentType=application/json", "--spring.jmx.enabled=false"); + InputDestination source = context.getBean(InputDestination.class); + OutputDestination target = context.getBean(OutputDestination.class); + String jsonPayload = "{\"name\":\"oleg\"}"; + source.send(new GenericMessage<>(jsonPayload.getBytes())); + Message outputMessage = target.receive(); + assertEquals(MimeTypeUtils.APPLICATION_JSON, outputMessage.getHeaders().get(MessageHeaders.CONTENT_TYPE)); + assertEquals(jsonPayload, new String(outputMessage.getPayload(), StandardCharsets.UTF_8)); + } + @Test public void typelessToPojoWithTextHeaderContentTypeBinding() { ApplicationContext context = new SpringApplicationBuilder(TypelessToPojoStreamListener.class)