@Test public void channelResolver_isNotNull() throws Exception { splitter.setOutputChannel(null); Message<String> message = MessageBuilder.withPayload("fooBar") .setReplyChannelName("out").build(); inMethodInvoking.send(message); }
@Test public void splitWithMassiveReplyMessages_allMessagesSent() { final int messageQuantity = 100000; MethodInvokingSplitter splitter = new MethodInvokingSplitter(new IteratorTestBean(messageQuantity)); splitter.setBeanFactory(mock(BeanFactory.class)); DirectChannel replyChannel = new DirectChannel(); splitter.setOutputChannel(replyChannel); splitter.afterPropertiesSet(); final AtomicInteger receivedMessageCounter = new AtomicInteger(0); new EventDrivenConsumer(replyChannel, message -> { assertThat("Failure with msg: " + message, message.getPayload(), is(notNullValue())); receivedMessageCounter.incrementAndGet(); }).start(); splitter.handleMessage(this.message); assertThat(receivedMessageCounter.get(), is(messageQuantity)); }
@Test public void splitToIterator_sequenceSizeInLastMessageHeader() { int messageQuantity = 5; MethodInvokingSplitter splitter = new MethodInvokingSplitter(new IteratorTestBean(messageQuantity)); splitter.setBeanFactory(mock(BeanFactory.class)); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.afterPropertiesSet(); splitter.handleMessage(this.message); List<Message<?>> receivedMessages = replyChannel.clear(); receivedMessages.sort(Comparator.comparing(o -> o.getHeaders().get(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, Integer.class))); assertThat(receivedMessages.get(4) .getHeaders() .get(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, Integer.class), is(messageQuantity)); }
@Test public void splitToIterator_allMessagesContainSequenceNumber() { final int messageQuantity = 5; MethodInvokingSplitter splitter = new MethodInvokingSplitter(new IteratorTestBean(messageQuantity)); splitter.setBeanFactory(mock(BeanFactory.class)); DirectChannel replyChannel = new DirectChannel(); splitter.setOutputChannel(replyChannel); splitter.afterPropertiesSet(); new EventDrivenConsumer(replyChannel, message -> assertThat("Failure with msg: " + message, message.getHeaders().get(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER, Integer.class), is(Integer.valueOf((String) message.getPayload())))).start(); splitter.handleMessage(this.message); }
@Test public void splitMessageToStringArray() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("messageToStringArray"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitStringToMessageArray() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = this.getSplitter("stringToMessageArray"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitStringToMessageArrayConfiguredByMethodName() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("stringToMessageArray"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitMessageToStringListConfiguredByMethodName() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("messageToStringList"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitMessageToMessageArrayConfiguredByMethodName() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("messageToMessageArray"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitMessageToStringList() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("messageToStringList"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitMessageToMessageArray() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("messageToMessageArray"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitMessageToMessageListConfiguredByMethodName() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("messageToMessageList"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitStringToStringArray() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("stringToStringArray"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitStringToStringList() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("stringToStringList"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitStringToStringArrayConfiguredByMethodName() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("stringToStringArray"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitStringToStringListConfiguredByMethodName() throws Exception { GenericMessage<String> message = new GenericMessage<>("foo.bar"); MethodInvokingSplitter splitter = getSplitter("stringToStringList"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitToIterator_allMessagesSent() { int messageQuantity = 5; MethodInvokingSplitter splitter = new MethodInvokingSplitter(new IteratorTestBean(messageQuantity)); splitter.setBeanFactory(mock(BeanFactory.class)); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.afterPropertiesSet(); splitter.handleMessage(this.message); assertThat(replyChannel.getQueueSize(), is(messageQuantity)); }
@Test public void splitMessageHeader() throws Exception { Message<String> message = MessageBuilder.withPayload("ignored").setHeader("testHeader", "foo.bar").build(); MethodInvokingSplitter splitter = this.getSplitter("splitHeader"); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.handleMessage(message); List<Message<?>> replies = replyChannel.clear(); Message<?> reply1 = replies.get(0); assertNotNull(reply1); assertEquals("foo", reply1.getPayload()); Message<?> reply2 = replies.get(1); assertNotNull(reply2); assertEquals("bar", reply2.getPayload()); }
@Test public void splitToIterable_allMessagesSent() { int messageQuantity = 5; MethodInvokingSplitter splitter = new MethodInvokingSplitter(new IterableTestBean(messageQuantity)); splitter.setBeanFactory(mock(BeanFactory.class)); QueueChannel replyChannel = new QueueChannel(); splitter.setOutputChannel(replyChannel); splitter.afterPropertiesSet(); splitter.handleMessage(this.message); assertThat(replyChannel.getQueueSize(), is(messageQuantity)); }
@Test public void testCorrelationIdWithSplitterWhenNotValueSetOnIncomingMessage() throws Exception { Message<?> message = new GenericMessage<String>("test1,test2"); QueueChannel testChannel = new QueueChannel(); MethodInvokingSplitter splitter = new MethodInvokingSplitter( new TestBean(), TestBean.class.getMethod("split", String.class)); splitter.setOutputChannel(testChannel); splitter.setBeanFactory(mock(BeanFactory.class)); splitter.afterPropertiesSet(); splitter.handleMessage(message); Message<?> reply1 = testChannel.receive(100); Message<?> reply2 = testChannel.receive(100); assertEquals(message.getHeaders().getId(), new IntegrationMessageHeaderAccessor(reply1).getCorrelationId()); assertEquals(message.getHeaders().getId(), new IntegrationMessageHeaderAccessor(reply2).getCorrelationId()); }