brokerSetup.prepareSimpleTest();
TestConsumer testConsumer = new TestConsumer();
ConsumerContainer consumerContainer = prepareConsumerContainer(testConsumer, TestBrokerSetup.TEST_QUEUE, 10);
consumerContainer.startAllConsumers();
for (int i=1; i<=MESSAGE_AMOUNT; i++) {
Message message = new Message()
.exchange(TestBrokerSetup.TEST_EXCHANGE)
.routingKey(TestBrokerSetup.TEST_ROUTING_KEY)
.body("" + i);
publisher.publish(message);
}
// Sleep depending on the amount of messages sent but at least 100 ms, and at most 1 sec
Thread.sleep(Math.max(100, Math.min(1000, MESSAGE_AMOUNT * 10)));
List<Message> receivedMessages = testConsumer.getReceivedMessages();
Assert.assertEquals(MESSAGE_AMOUNT, receivedMessages.size());
for (int i=1; i<=MESSAGE_AMOUNT; i++) {
Message receivedMessage = receivedMessages.get(i-1);
Assert.assertNotNull(receivedMessage);
Assert.assertEquals(i, (int)receivedMessage.getBodyAs(Integer.class));
}
}