Added test for Splitter annotation now that the output channel is propagated from @MessageEndpoint.

This commit is contained in:
Mark Fisher
2008-04-11 22:25:21 +00:00
parent 1835a9e0ed
commit 3ef001545f

View File

@@ -33,6 +33,7 @@ import org.springframework.integration.annotation.DefaultOutput;
import org.springframework.integration.annotation.Handler;
import org.springframework.integration.annotation.MessageEndpoint;
import org.springframework.integration.annotation.Polled;
import org.springframework.integration.annotation.Splitter;
import org.springframework.integration.bus.MessageBus;
import org.springframework.integration.channel.ChannelRegistry;
import org.springframework.integration.channel.ChannelRegistryAware;
@@ -255,6 +256,35 @@ public class MessageEndpointAnnotationPostProcessorTests {
assertEquals("test-ABC", message.getPayload());
}
@Test
public void testSplitterAnnotation() throws InterruptedException {
MessageBus messageBus = new MessageBus();
SimpleChannel input = new SimpleChannel();
SimpleChannel output = new SimpleChannel();
messageBus.registerChannel("input", input);
messageBus.registerChannel("output", output);
MessageEndpointAnnotationPostProcessor postProcessor =
new MessageEndpointAnnotationPostProcessor(messageBus);
postProcessor.afterPropertiesSet();
SplitterAnnotationTestEndpoint endpoint = new SplitterAnnotationTestEndpoint();
postProcessor.postProcessAfterInitialization(endpoint, "endpoint");
messageBus.start();
input.send(new StringMessage("this.is.a.test"));
Message<?> message1 = output.receive(500);
assertNotNull(message1);
assertEquals("this", message1.getPayload());
Message<?> message2 = output.receive(500);
assertNotNull(message2);
assertEquals("is", message2.getPayload());
Message<?> message3 = output.receive(500);
assertNotNull(message3);
assertEquals("a", message3.getPayload());
Message<?> message4 = output.receive(500);
assertNotNull(message4);
assertEquals("test", message4.getPayload());
assertNull(output.receive(500));
}
@MessageEndpoint(defaultOutput="testChannel")
private static class PolledAnnotationTestBean {
@@ -329,4 +359,14 @@ public class MessageEndpointAnnotationPostProcessorTests {
}
}
@MessageEndpoint(input="input", defaultOutput="output")
private static class SplitterAnnotationTestEndpoint {
@Splitter
public String[] split(String input) {
return input.split("\\.");
}
}
}