@Test public void listWithSplittingHandler() { AbstractMessageSplitter handler = new AbstractMessageSplitter() { @Override protected Object splitMessage(Message<?> message) { return Arrays.asList("foo", "bar"); } }; QueueChannel channel = new QueueChannel(); Message<?> message = MessageBuilder.withPayload("test").setReplyChannel(channel).build(); handler.handleMessage(message); Message<?> reply1 = channel.receive(0); Message<?> reply2 = channel.receive(0); assertNotNull(reply1); assertNotNull(reply2); assertEquals(String.class, reply1.getPayload().getClass()); assertEquals(String.class, reply2.getPayload().getClass()); assertEquals("foo", reply1.getPayload()); assertEquals("bar", reply2.getPayload()); }
@Test public void arrayWithSplittingHandler() { AbstractMessageSplitter handler = new AbstractMessageSplitter() { @Override protected Object splitMessage(Message<?> message) { return new String[] { "foo", "bar" }; } }; QueueChannel channel = new QueueChannel(); Message<?> message = MessageBuilder.withPayload("test").setReplyChannel(channel).build(); handler.handleMessage(message); Message<?> reply1 = channel.receive(0); Message<?> reply2 = channel.receive(0); assertNotNull(reply1); assertNotNull(reply2); assertEquals(String.class, reply1.getPayload().getClass()); assertEquals(String.class, reply2.getPayload().getClass()); assertEquals("foo", reply1.getPayload()); assertEquals("bar", reply2.getPayload()); }
@Test public void setWithSplittingHandler() { AbstractMessageSplitter handler = new AbstractMessageSplitter() { @Override protected Object splitMessage(Message<?> message) { return new HashSet<String>(Arrays.asList("foo", "bar")); } }; QueueChannel channel = new QueueChannel(); Message<?> message = MessageBuilder.withPayload("test").setReplyChannel(channel).build(); handler.handleMessage(message); Message<?> reply1 = channel.receive(0); Message<?> reply2 = channel.receive(0); assertNotNull(reply1); assertNotNull(reply2); assertEquals(String.class, reply1.getPayload().getClass()); assertEquals(String.class, reply2.getPayload().getClass()); }