@Test
 public void splitMessageWithEmptyCollectionPayload() throws Exception {
   Message<List<String>> message =
       MessageBuilder.withPayload(Collections.<String>emptyList()).build();
   QueueChannel replyChannel = new QueueChannel();
   DefaultMessageSplitter splitter = new DefaultMessageSplitter();
   splitter.setOutputChannel(replyChannel);
   splitter.handleMessage(message);
   Message<?> output = replyChannel.receive(15);
   assertThat(output, is(nullValue()));
 }
 @Test
 public void correlationIdCopiedFromMessageId() {
   Message<String> message = MessageBuilder.withPayload("test").build();
   DirectChannel inputChannel = new DirectChannel();
   QueueChannel outputChannel = new QueueChannel(1);
   DefaultMessageSplitter splitter = new DefaultMessageSplitter();
   splitter.setOutputChannel(outputChannel);
   EventDrivenConsumer endpoint = new EventDrivenConsumer(inputChannel, splitter);
   endpoint.start();
   assertTrue(inputChannel.send(message));
   Message<?> reply = outputChannel.receive(0);
   assertEquals(message.getHeaders().getId(), reply.getHeaders().getCorrelationId());
 }
 @Test
 public void splitMessageWithCollectionPayload() throws Exception {
   List<String> payload = Arrays.asList(new String[] {"x", "y", "z"});
   Message<List<String>> message = MessageBuilder.withPayload(payload).build();
   QueueChannel replyChannel = new QueueChannel();
   DefaultMessageSplitter splitter = new DefaultMessageSplitter();
   splitter.setOutputChannel(replyChannel);
   splitter.handleMessage(message);
   List<Message<?>> replies = replyChannel.clear();
   assertEquals(3, replies.size());
   Message<?> reply1 = replies.get(0);
   assertNotNull(reply1);
   assertEquals("x", reply1.getPayload());
   Message<?> reply2 = replies.get(1);
   assertNotNull(reply2);
   assertEquals("y", reply2.getPayload());
   Message<?> reply3 = replies.get(2);
   assertNotNull(reply3);
   assertEquals("z", reply3.getPayload());
 }