Search in sources :

Example 6 with MessageCollector

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

the class StreamListenerHandlerMethodTests method testMethodHeadersNotPropagatged.

@SuppressWarnings("unchecked")
@Test
public void testMethodHeadersNotPropagatged() throws Exception {
    ConfigurableApplicationContext context = SpringApplication.run(TestMethodHeadersNotPropagated.class, "--server.port=0", "--spring.jmx.enabled=false", "--spring.cloud.stream.bindings.input.contentType=text/plain", "--spring.cloud.stream.bindings.output.contentType=text/plain");
    Processor processor = context.getBean(Processor.class);
    final String testMessage = "testing";
    processor.input().send(MessageBuilder.withPayload(testMessage).setHeader("foo", "bar").build());
    MessageCollector messageCollector = context.getBean(MessageCollector.class);
    Message<String> result = (Message<String>) messageCollector.forChannel(processor.output()).poll(1000, TimeUnit.MILLISECONDS);
    assertThat(result).isNotNull();
    assertThat(result.getPayload()).isEqualTo(testMessage.toUpperCase());
    assertThat(result.getHeaders().get("foo")).isNull();
    context.close();
}
Also used : ConfigurableApplicationContext(org.springframework.context.ConfigurableApplicationContext) Processor(org.springframework.cloud.stream.messaging.Processor) Message(org.springframework.messaging.Message) MessageCollector(org.springframework.cloud.stream.test.binder.MessageCollector) Test(org.junit.Test)

Example 7 with MessageCollector

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

the class StreamListenerMessageArgumentTests method testMessageArgument.

@Test
@SuppressWarnings("unchecked")
public void testMessageArgument() throws Exception {
    ConfigurableApplicationContext context = SpringApplication.run(this.configClass, "--server.port=0", "--spring.cloud.stream.bindings.output.contentType=text/plain", "--spring.jmx.enabled=false");
    MessageCollector collector = context.getBean(MessageCollector.class);
    Processor processor = context.getBean(Processor.class);
    String id = UUID.randomUUID().toString();
    processor.input().send(MessageBuilder.withPayload("barbar" + id).setHeader("contentType", "text/plain").build());
    TestPojoWithMessageArgument testPojoWithMessageArgument = context.getBean(TestPojoWithMessageArgument.class);
    assertThat(testPojoWithMessageArgument.receivedMessages).hasSize(1);
    assertThat(testPojoWithMessageArgument.receivedMessages.get(0).getPayload()).isEqualTo("barbar" + id);
    Message<String> message = (Message<String>) collector.forChannel(processor.output()).poll(1, TimeUnit.SECONDS);
    assertThat(message).isNotNull();
    assertThat(message.getPayload()).contains("barbar" + id);
    context.close();
}
Also used : ConfigurableApplicationContext(org.springframework.context.ConfigurableApplicationContext) Processor(org.springframework.cloud.stream.messaging.Processor) Message(org.springframework.messaging.Message) MessageCollector(org.springframework.cloud.stream.test.binder.MessageCollector) Test(org.junit.Test)

Example 8 with MessageCollector

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

the class StreamListenerMethodWithReturnValueTests method testReturn.

@Test
@SuppressWarnings("unchecked")
public void testReturn() throws Exception {
    ConfigurableApplicationContext context = SpringApplication.run(this.configClass, "--server.port=0", "--spring.jmx.enabled=false");
    MessageCollector collector = context.getBean(MessageCollector.class);
    Processor processor = context.getBean(Processor.class);
    String id = UUID.randomUUID().toString();
    processor.input().send(MessageBuilder.withPayload("{\"foo\":\"barbar" + id + "\"}").setHeader("contentType", "application/json").build());
    Message<String> message = (Message<String>) collector.forChannel(processor.output()).poll(1, TimeUnit.SECONDS);
    TestStringProcessor testStringProcessor = context.getBean(TestStringProcessor.class);
    Assertions.assertThat(testStringProcessor.receivedPojos).hasSize(1);
    Assertions.assertThat(testStringProcessor.receivedPojos.get(0)).hasFieldOrPropertyWithValue("foo", "barbar" + id);
    assertThat(message).isNotNull();
    assertThat(message.getPayload()).contains("barbar" + id);
    context.close();
}
Also used : ConfigurableApplicationContext(org.springframework.context.ConfigurableApplicationContext) Processor(org.springframework.cloud.stream.messaging.Processor) Message(org.springframework.messaging.Message) MessageCollector(org.springframework.cloud.stream.test.binder.MessageCollector) Test(org.junit.Test)

Example 9 with MessageCollector

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

the class StreamEmitterBasicTests method receiveAndValidate.

private static void receiveAndValidate(ConfigurableApplicationContext context) throws InterruptedException {
    Source source = context.getBean(Source.class);
    MessageCollector messageCollector = context.getBean(MessageCollector.class);
    List<String> messages = new ArrayList<>();
    for (int i = 0; i < 1000; i++) {
        messages.add((String) messageCollector.forChannel(source.output()).poll(5000, TimeUnit.MILLISECONDS).getPayload());
    }
    for (int i = 0; i < 1000; i++) {
        assertThat(new String(messages.get(i))).isEqualTo("HELLO WORLD!!" + i);
    }
}
Also used : MessageCollector(org.springframework.cloud.stream.test.binder.MessageCollector) ArrayList(java.util.ArrayList) Source(org.springframework.cloud.stream.messaging.Source)

Example 10 with MessageCollector

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

the class StreamListenerGenericFluxInputOutputArgsWithMessageTests method sendMessageAndValidate.

private static void sendMessageAndValidate(ConfigurableApplicationContext context) throws InterruptedException {
    Processor processor = context.getBean(Processor.class);
    String sentPayload = "hello " + UUID.randomUUID().toString();
    processor.input().send(MessageBuilder.withPayload(sentPayload).setHeader("contentType", "text/plain").build());
    MessageCollector messageCollector = context.getBean(MessageCollector.class);
    Message<String> result = (Message<String>) messageCollector.forChannel(processor.output()).poll(1000, TimeUnit.MILLISECONDS);
    assertThat(result).isNotNull();
    assertThat(result.getPayload()).isEqualTo(sentPayload.toUpperCase());
}
Also used : Processor(org.springframework.cloud.stream.messaging.Processor) Message(org.springframework.messaging.Message) MessageCollector(org.springframework.cloud.stream.test.binder.MessageCollector)

Aggregations

MessageCollector (org.springframework.cloud.stream.test.binder.MessageCollector)38 Message (org.springframework.messaging.Message)30 ConfigurableApplicationContext (org.springframework.context.ConfigurableApplicationContext)25 Test (org.junit.Test)24 Processor (org.springframework.cloud.stream.messaging.Processor)19 Source (org.springframework.cloud.stream.messaging.Source)16 Sink (org.springframework.cloud.stream.messaging.Sink)5 ArrayList (java.util.ArrayList)3 AggregateApplication (org.springframework.cloud.stream.aggregate.AggregateApplication)1 AggregateApplicationBuilder (org.springframework.cloud.stream.aggregate.AggregateApplicationBuilder)1 DirectChannel (org.springframework.integration.channel.DirectChannel)1 MessageChannel (org.springframework.messaging.MessageChannel)1 Tuple (org.springframework.tuple.Tuple)1