Search in sources :

Example 11 with InputDestination

use of org.springframework.cloud.stream.binder.test.InputDestination in project spring-cloud-stream by spring-cloud.

the class ContentTypeTckTests method stringToPojoInboundContentTypeHeader.

@Test
public void stringToPojoInboundContentTypeHeader() {
    ApplicationContext context = new SpringApplicationBuilder(StringToPojoStreamListener.class).web(WebApplicationType.NONE).run("--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(), new MessageHeaders(Collections.singletonMap(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.TEXT_PLAIN))));
    Message<byte[]> outputMessage = target.receive();
    assertEquals(MimeTypeUtils.APPLICATION_JSON, outputMessage.getHeaders().get(MessageHeaders.CONTENT_TYPE));
    assertEquals(jsonPayload, new String(outputMessage.getPayload(), StandardCharsets.UTF_8));
}
Also used : ApplicationContext(org.springframework.context.ApplicationContext) OutputDestination(org.springframework.cloud.stream.binder.test.OutputDestination) SpringApplicationBuilder(org.springframework.boot.builder.SpringApplicationBuilder) MessageHeaders(org.springframework.messaging.MessageHeaders) InputDestination(org.springframework.cloud.stream.binder.test.InputDestination) Test(org.junit.Test)

Example 12 with InputDestination

use of org.springframework.cloud.stream.binder.test.InputDestination in project spring-cloud-stream by spring-cloud.

the class ContentTypeTckTests method pojoToStringOutboundContentTypeBinding.

@Test
public void pojoToStringOutboundContentTypeBinding() {
    ApplicationContext context = new SpringApplicationBuilder(PojoToStringStreamListener.class).web(WebApplicationType.NONE).run("--spring.cloud.stream.bindings.output.contentType=text/plain", "--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<byte[]> outputMessage = target.receive();
    assertEquals(MimeTypeUtils.TEXT_PLAIN, outputMessage.getHeaders().get(MessageHeaders.CONTENT_TYPE));
    assertEquals("oleg", new String(outputMessage.getPayload(), StandardCharsets.UTF_8));
}
Also used : ApplicationContext(org.springframework.context.ApplicationContext) OutputDestination(org.springframework.cloud.stream.binder.test.OutputDestination) SpringApplicationBuilder(org.springframework.boot.builder.SpringApplicationBuilder) InputDestination(org.springframework.cloud.stream.binder.test.InputDestination) Test(org.junit.Test)

Example 13 with InputDestination

use of org.springframework.cloud.stream.binder.test.InputDestination in project spring-cloud-stream by spring-cloud.

the class ContentTypeTckTests method _jsonToPojoWrongDefaultContentTypeProperty.

// Failure tests
@Test
public void _jsonToPojoWrongDefaultContentTypeProperty() {
    ApplicationContext context = new SpringApplicationBuilder(PojoToPojoStreamListener.class).web(WebApplicationType.NONE).run("--spring.cloud.stream.default.contentType=text/plain", "--spring.jmx.enabled=false");
    InputDestination source = context.getBean(InputDestination.class);
    TestChannelBinder binder = context.getBean(TestChannelBinder.class);
    String jsonPayload = "{\"name\":\"oleg\"}";
    source.send(new GenericMessage<>(jsonPayload.getBytes()));
    assertTrue(binder.getLastError().getPayload() instanceof MessageConversionException);
}
Also used : ApplicationContext(org.springframework.context.ApplicationContext) MessageConversionException(org.springframework.messaging.converter.MessageConversionException) SpringApplicationBuilder(org.springframework.boot.builder.SpringApplicationBuilder) TestChannelBinder(org.springframework.cloud.stream.binder.test.TestChannelBinder) InputDestination(org.springframework.cloud.stream.binder.test.InputDestination) Test(org.junit.Test)

Example 14 with InputDestination

use of org.springframework.cloud.stream.binder.test.InputDestination in project spring-cloud-stream by spring-cloud.

the class ContentTypeTckTests method pojoToByteArray.

@Test
public void pojoToByteArray() {
    ApplicationContext context = new SpringApplicationBuilder(PojoToByteArrayStreamListener.class).web(WebApplicationType.NONE).run("--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<byte[]> outputMessage = target.receive();
    assertEquals(MimeTypeUtils.APPLICATION_JSON, outputMessage.getHeaders().get(MessageHeaders.CONTENT_TYPE));
    assertEquals("oleg", new String(outputMessage.getPayload(), StandardCharsets.UTF_8));
}
Also used : ApplicationContext(org.springframework.context.ApplicationContext) OutputDestination(org.springframework.cloud.stream.binder.test.OutputDestination) SpringApplicationBuilder(org.springframework.boot.builder.SpringApplicationBuilder) InputDestination(org.springframework.cloud.stream.binder.test.InputDestination) Test(org.junit.Test)

Example 15 with InputDestination

use of org.springframework.cloud.stream.binder.test.InputDestination in project spring-cloud-stream by spring-cloud.

the class ContentTypeTckTests method customMessageConverter_defaultContentTypeBinding.

@Test
public void customMessageConverter_defaultContentTypeBinding() {
    ApplicationContext context = new SpringApplicationBuilder(StringToStringStreamListener.class, CustomConverters.class).web(WebApplicationType.NONE).run("--spring.cloud.stream.default.contentType=foo/bar", "--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<byte[]> outputMessage = target.receive();
    assertNotNull(outputMessage);
    assertEquals("FooBarMessageConverter", new String(outputMessage.getPayload(), StandardCharsets.UTF_8));
    assertEquals(MimeType.valueOf("foo/bar"), outputMessage.getHeaders().get(MessageHeaders.CONTENT_TYPE));
}
Also used : ApplicationContext(org.springframework.context.ApplicationContext) OutputDestination(org.springframework.cloud.stream.binder.test.OutputDestination) SpringApplicationBuilder(org.springframework.boot.builder.SpringApplicationBuilder) InputDestination(org.springframework.cloud.stream.binder.test.InputDestination) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)26 SpringApplicationBuilder (org.springframework.boot.builder.SpringApplicationBuilder)26 InputDestination (org.springframework.cloud.stream.binder.test.InputDestination)26 ApplicationContext (org.springframework.context.ApplicationContext)26 OutputDestination (org.springframework.cloud.stream.binder.test.OutputDestination)24 MessageHeaders (org.springframework.messaging.MessageHeaders)4 TestChannelBinder (org.springframework.cloud.stream.binder.test.TestChannelBinder)2 KryoMessageConverter (org.springframework.cloud.stream.converter.KryoMessageConverter)2 Message (org.springframework.messaging.Message)2 MessageConversionException (org.springframework.messaging.converter.MessageConversionException)2 GenericMessage (org.springframework.messaging.support.GenericMessage)2 MimeType (org.springframework.util.MimeType)2