@Test public void testMultipleChannelsWithSelector() { QueueChannel channel1 = new QueueChannel(); QueueChannel channel2 = new QueueChannel(); channel1.send(new GenericMessage<String>("test1")); channel1.send(new GenericMessage<String>("test2")); channel1.send(new GenericMessage<String>("test3")); channel2.send(new GenericMessage<String>("test1")); channel2.send(new GenericMessage<String>("test2")); channel2.send(new GenericMessage<String>("test3")); ChannelPurger purger = new ChannelPurger( new MessageSelector() { public boolean accept(Message<?> message) { return (message.getPayload().equals("test2")); } }, channel1, channel2); List<Message<?>> purgedMessages = purger.purge(); assertEquals(4, purgedMessages.size()); Message<?> message1 = channel1.receive(0); assertNotNull(message1); assertEquals("test2", message1.getPayload()); assertNull(channel1.receive(0)); Message<?> message2 = channel2.receive(0); assertNotNull(message2); assertEquals("test2", message2.getPayload()); assertNull(channel2.receive(0)); }
@Test public void testPurgeAllWithoutSelector() { 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(channel); List<Message<?>> purgedMessages = purger.purge(); assertEquals(3, purgedMessages.size()); assertNull(channel.receive(0)); }
@Test public void lookupRegisteredChannel() { GenericApplicationContext context = new GenericApplicationContext(); QueueChannel testChannel = new QueueChannel(); testChannel.setBeanName("testChannel"); context.getBeanFactory().registerSingleton("testChannel", testChannel); context.refresh(); BeanFactoryChannelResolver resolver = new BeanFactoryChannelResolver(context); MessageChannel lookedUpChannel = resolver.resolveChannelName("testChannel"); assertNotNull(testChannel); assertSame(testChannel, lookedUpChannel); }
@Test public void testPurgeAllWithSelector() { 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( new MessageSelector() { public boolean accept(Message<?> message) { return false; } }, channel); List<Message<?>> purgedMessages = purger.purge(); assertEquals(3, purgedMessages.size()); assertNull(channel.receive(0)); }
@Test public void testPurgeSubsetWithSelector() { 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( new MessageSelector() { public boolean accept(Message<?> message) { return (message.getPayload().equals("test2")); } }, channel); List<Message<?>> purgedMessages = purger.purge(); assertEquals(2, purgedMessages.size()); Message<?> message = channel.receive(0); assertNotNull(message); assertEquals("test2", message.getPayload()); assertNull(channel.receive(0)); }
@Test public void testMultipleChannelsWithNoSelector() { QueueChannel channel1 = new QueueChannel(); QueueChannel channel2 = new QueueChannel(); channel1.send(new GenericMessage<String>("test1")); channel1.send(new GenericMessage<String>("test2")); channel2.send(new GenericMessage<String>("test1")); channel2.send(new GenericMessage<String>("test2")); ChannelPurger purger = new ChannelPurger(channel1, channel2); List<Message<?>> purgedMessages = purger.purge(); assertEquals(4, purgedMessages.size()); assertNull(channel1.receive(0)); assertNull(channel2.receive(0)); }
@Test public void testPurgeNoneWithSelectorAndMultipleChannels() { QueueChannel channel1 = new QueueChannel(); QueueChannel channel2 = new QueueChannel(); channel1.send(new GenericMessage<String>("test1")); channel1.send(new GenericMessage<String>("test2")); channel2.send(new GenericMessage<String>("test1")); channel2.send(new GenericMessage<String>("test2")); ChannelPurger purger = new ChannelPurger( new MessageSelector() { public boolean accept(Message<?> message) { return true; } }, channel1, channel2); List<Message<?>> purgedMessages = purger.purge(); assertEquals(0, purgedMessages.size()); assertNotNull(channel1.receive(0)); assertNotNull(channel1.receive(0)); assertNotNull(channel2.receive(0)); assertNotNull(channel2.receive(0)); }