@Test public void testPreReceive() throws Exception { MessageSourcePollerInterceptor interceptor = new MessageSourcePollerInterceptor(new TestMessageSource("foo")); QueueChannel channel = new QueueChannel(); assertTrue(interceptor.preReceive(channel)); assertEquals("foo", channel.receive(10L).getPayload()); }
public final List<Message<?>> purge() { List<Message<?>> purgedMessages = new ArrayList<Message<?>>(); for (QueueChannel channel : this.channels) { List<Message<?>> results = (this.selector == null) ? channel.clear() : channel.purge(this.selector); if (results != null) { purgedMessages.addAll(results); } } return purgedMessages; }
@Test public void referencedScript() { QueueChannel replyChannel = new QueueChannel(); replyChannel.setBeanName("returnAddress"); Message<?> message = MessageBuilder.withPayload("x,y,z").setReplyChannel(replyChannel).build(); this.referencedScriptInput.send(message); assertEquals("x", replyChannel.receive(0).getPayload()); assertEquals("y", replyChannel.receive(0).getPayload()); assertEquals("z", replyChannel.receive(0).getPayload()); assertNull(replyChannel.receive(0)); }
@Test public void testLizardDiscard() { String payload = "LIZARD:Scaly"; Message<String> message = MessageBuilder.withPayload(payload).build(); inputChannel2.send(message); Message<?> outMessage = testChannel.receive(0); assertNull("Expected no output message", outMessage); outMessage = testDiscardChannel2.receive(0); assertNotNull("Expected discard message", outMessage); assertThat(outMessage, hasPayload(payload)); } }
@Test public void wireTapWithNoSelector() { QueueChannel mainChannel = new QueueChannel(); QueueChannel secondaryChannel = new QueueChannel(); mainChannel.addInterceptor(new WireTap(secondaryChannel)); mainChannel.send(new GenericMessage<>("testing")); Message<?> original = mainChannel.receive(0); assertNotNull(original); Message<?> intercepted = secondaryChannel.receive(0); assertNotNull(intercepted); assertEquals(original, intercepted); }
@Test public void testPurgeNoneWithSelector() { QueueChannel channel = new QueueChannel(); channel.send(new GenericMessage<String>("test1")); channel.send(new GenericMessage<String>("test2")); channel.send(new GenericMessage<String>("test3")); ChannelPurger purger = new ChannelPurger(message -> true, channel); List<Message<?>> purgedMessages = purger.purge(); assertEquals(0, purgedMessages.size()); assertNotNull(channel.receive(0)); assertNotNull(channel.receive(0)); assertNotNull(channel.receive(0)); }
@Test @MongoDbAvailable public void testWithMongoConverter() throws Exception { this.mongoTemplate.save(this.createPerson("Bob"), "data"); this.mongoInboundAdapterWithConverter.start(); @SuppressWarnings("unchecked") Message<List<Person>> message = (Message<List<Person>>) replyChannel.receive(10000); assertNotNull(message); assertEquals("Bob", message.getPayload().get(0).getName()); assertNotNull(replyChannel.receive(10000)); this.mongoInboundAdapterWithConverter.stop(); this.replyChannel.purge(null); }
@Test(expected = MessageDeliveryException.class) public void testSingleSelectorRejects() { final AtomicInteger counter = new AtomicInteger(); MessageSelector selector = new TestMessageSelector(false, counter); MessageSelectingInterceptor interceptor = new MessageSelectingInterceptor(selector); QueueChannel channel = new QueueChannel(); channel.addInterceptor(interceptor); channel.send(new GenericMessage<>("test1")); }
@Test public void testImmediateSend() { QueueChannel channel = new QueueChannel(3); boolean result1 = channel.send(new GenericMessage<>("test-1")); assertTrue(result1); boolean result2 = channel.send(new GenericMessage<>("test-2"), 100); assertTrue(result2); boolean result3 = channel.send(new GenericMessage<>("test-3"), 0); assertTrue(result3); boolean result4 = channel.send(new GenericMessage<>("test-4"), 0); assertFalse(result4); }
@Test public void testPreReceiveInterceptorReturnsFalse() { channel.addInterceptor(new PreReceiveReturnsFalseInterceptor()); Message<?> message = new GenericMessage<String>("test"); channel.send(message); Message<?> result = channel.receive(0); assertEquals(1, PreReceiveReturnsFalseInterceptor.counter.get()); assertNull(result); }
@Bean public QueueChannel replies() { return new QueueChannel(); }
@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)); }
private static QueueChannel createChannel(Class<?>... datatypes) { QueueChannel channel = new QueueChannel(); channel.setBeanName("testChannel"); channel.setDatatypes(datatypes); return channel; }
private static MessageChannel getSecuredChannel(String role) throws Exception { QueueChannel channel = new QueueChannel(); channel.setBeanName("securedChannel"); ProxyFactory proxyFactory = new ProxyFactory(channel); proxyFactory.addAdvice(createInterceptor(role)); return (MessageChannel) proxyFactory.getProxy(); }
@Test public void verifyCapacityValueChanges() { QueueChannel channel = context.getBean("channel", QueueChannel.class); assertNotNull(channel); assertEquals(99, channel.getRemainingCapacity()); channel.send(MessageBuilder.withPayload("test1").build()); channel.send(MessageBuilder.withPayload("test2").build()); assertEquals(97, channel.getRemainingCapacity()); assertNotNull(channel.receive(0)); assertEquals(98, channel.getRemainingCapacity()); }
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Queued Message Count") public int getQueuedMessageCount() { int count = 0; for (MessageChannelMetrics monitor : this.channels) { if (monitor instanceof QueueChannel) { count += ((QueueChannel) monitor).getQueueSize(); } } return count; }
@Override protected Object handleRequestMessage(Message<?> requestMessage) { replyChannel.send(requestMessage); return null; }
@Test(expected = MessageDeliveryException.class) public void unsupportedTypeAndConversionServiceDoesNotSupport() { QueueChannel channel = createChannel(Integer.class); ConversionService conversionService = new DefaultConversionService(); DefaultDatatypeChannelMessageConverter converter = new DefaultDatatypeChannelMessageConverter(); converter.setConversionService(conversionService); channel.setMessageConverter(converter); assertTrue(channel.send(new GenericMessage<Boolean>(Boolean.TRUE))); }