@Before public void configureResequencer() { this.resequencer = new ResequencingMessageHandler(processor, store, null, null); this.resequencer.setBeanFactory(mock(BeanFactory.class)); this.resequencer.afterPropertiesSet(); }
@Test public void testBasicResequencingA() throws InterruptedException { SequenceSizeReleaseStrategy releaseStrategy = new SequenceSizeReleaseStrategy(); releaseStrategy.setReleasePartialSequences(true); this.resequencer = new ResequencingMessageHandler(processor, store, null, releaseStrategy); this.resequencer.setBeanFactory(mock(BeanFactory.class)); this.resequencer.afterPropertiesSet(); QueueChannel replyChannel = new QueueChannel(); Message<?> message1 = createMessage("123", "ABC", 3, 1, replyChannel); Message<?> message3 = createMessage("789", "ABC", 3, 3, replyChannel); this.resequencer.handleMessage(message3); assertNull(replyChannel.receive(0)); this.resequencer.handleMessage(message1); assertNotNull(replyChannel.receive(0)); assertNull(replyChannel.receive(0)); }
@Test public void testBasicUnboundedResequencing() throws InterruptedException { SequenceSizeReleaseStrategy releaseStrategy = new SequenceSizeReleaseStrategy(); releaseStrategy.setReleasePartialSequences(true); this.resequencer = new ResequencingMessageHandler(processor, store, null, releaseStrategy); QueueChannel replyChannel = new QueueChannel(); this.resequencer.setCorrelationStrategy(message -> "A"); this.resequencer.setBeanFactory(mock(BeanFactory.class)); this.resequencer.afterPropertiesSet(); //Message<?> message0 = MessageBuilder.withPayload("0").setSequenceNumber(0).build(); Message<?> message1 = MessageBuilder.withPayload("1").setSequenceNumber(1).setReplyChannel(replyChannel).build(); Message<?> message2 = MessageBuilder.withPayload("2").setSequenceNumber(2).setReplyChannel(replyChannel).build(); Message<?> message3 = MessageBuilder.withPayload("3").setSequenceNumber(3).setReplyChannel(replyChannel).build(); Message<?> message4 = MessageBuilder.withPayload("4").setSequenceNumber(4).setReplyChannel(replyChannel).build(); Message<?> message5 = MessageBuilder.withPayload("5").setSequenceNumber(5).setReplyChannel(replyChannel).build(); this.resequencer.handleMessage(message3); assertNull(replyChannel.receive(0)); this.resequencer.handleMessage(message1); assertNotNull(replyChannel.receive(0)); this.resequencer.handleMessage(message2); assertNotNull(replyChannel.receive(0)); assertNotNull(replyChannel.receive(0)); assertNull(replyChannel.receive(0)); this.resequencer.handleMessage(message5); assertNull(replyChannel.receive(0)); this.resequencer.handleMessage(message4); assertNotNull(replyChannel.receive(0)); }