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)