@Test public void testDelayRescheduling() { Message<?> receive = this.delayedResults.receive(10000); assertNotNull(receive); assertEquals("foo", receive.getPayload()); assertEquals(1, messageGroupStore.getMessageGroupCount()); assertEquals(0, messageGroupStore.getMessageCountForAllMessageGroups()); }
@Test public void testGroupTimeoutScheduling() throws Exception { for (int i = 0; i < 5; i++) { Map<String, Object> headers = stubHeaders(i, 5, 1); this.groupTimeoutAggregatorInput.send(new GenericMessage<>(i, headers)); //Wait until 'group-timeout' does its stuff. MessageGroupStore mgs = TestUtils.getPropertyValue(this.context.getBean("gta.handler"), "messageStore", MessageGroupStore.class); int n = 0; while (n++ < 100 && mgs.getMessageGroupCount() > 0) { Thread.sleep(100); } assertTrue("Group did not complete", n < 100); assertNotNull(this.output.receive(10000)); assertNull(this.discard.receive(0)); } }
@Test public void testGroupTimeoutReschedulingOnMessageDeliveryException() throws Exception { for (int i = 0; i < 5; i++) { this.output.send(new GenericMessage<>("fake message")); } Map<String, Object> headers = stubHeaders(1, 2, 1); this.groupTimeoutAggregatorInput.send(new GenericMessage<>(1, headers)); //Wait until 'group-timeout' does its stuff. MessageGroupStore mgs = TestUtils.getPropertyValue(this.context.getBean("gta.handler"), "messageStore", MessageGroupStore.class); int n = 0; while (n++ < 100 && mgs.getMessageGroupCount() > 0) { Thread.sleep(100); if (n == 10) { TestUtils.getPropertyValue(this.output, "queue", Queue.class).clear(); } } assertTrue("Group did not complete", n < 100); Message<?> receive = this.output.receive(10000); assertNotNull(receive); assertEquals(Collections.singletonList(1), receive.getPayload()); assertNull(this.discard.receive(0)); }
assertEquals(1, messageGroupStore.getMessageGroupCount()); assertEquals(DELAYER_MESSAGE_GROUP_ID, messageGroupStore.iterator().next().getGroupId()); assertEquals(1, messageGroupStore.messageGroupSize(DELAYER_MESSAGE_GROUP_ID)); assertEquals(1, messageGroupStore.getMessageGroupCount()); assertEquals(0, messageGroupStore.messageGroupSize(DELAYER_MESSAGE_GROUP_ID));
MessageGroupStore messageStore = context.getBean("messageStore", MessageGroupStore.class); assertEquals(0, messageStore.getMessageGroupCount()); Message<String> message1 = MessageBuilder.withPayload("test1").build(); input.send(message1); assertEquals(1, messageStore.getMessageGroupCount()); assertEquals(delayerMessageGroupId, messageStore.iterator().next().getGroupId()); assertEquals(2, messageStore.messageGroupSize(delayerMessageGroupId)); assertNotSame(payload1, payload2); assertEquals(1, messageStore.getMessageGroupCount()); assertEquals(0, messageStore.messageGroupSize(delayerMessageGroupId)); context.close();
assertEquals(1, messageStore.getMessageGroupCount()); assertEquals(delayerMessageGroupId, messageStore.iterator().next().getGroupId()); assertEquals(2, messageStore.messageGroupSize(delayerMessageGroupId)); assertNotSame(payload1, payload2); assertEquals(1, messageStore.getMessageGroupCount()); int n = 0; while (n++ < 200 && messageStore.messageGroupSize(delayerMessageGroupId) > 0) {
assertEquals(1, messageStore.getMessageGroupCount()); assertEquals(delayerMessageGroupId, messageStore.iterator().next().getGroupId()); assertEquals(2, messageStore.messageGroupSize(delayerMessageGroupId)); assertNotSame(payload1, payload2); assertEquals(1, messageStore.getMessageGroupCount()); int n = 0; while (n++ < 300 && messageStore.messageGroupSize(delayerMessageGroupId) > 0) {
@Test public void testDelayRescheduling() { Message<?> receive = this.delayedResults.receive(10000); assertNotNull(receive); assertEquals("foo", receive.getPayload()); assertEquals(1, messageGroupStore.getMessageGroupCount()); assertEquals(0, messageGroupStore.getMessageCountForAllMessageGroups()); }