This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit f07ba9a9e1c398fb4fadcb0fa8682cd4b6a418b1 Author: Rémi KOWALSKI <rkowal...@linagora.com> AuthorDate: Mon Mar 2 10:13:06 2020 +0100 JAMES-3081 add test to ensure messages are persisted on the rabbitmq mailqueue --- .../queue/rabbitmq/RabbitMQMailQueueTest.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java index 61d6e5b..cfad2b0 100644 --- a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java +++ b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java @@ -23,6 +23,8 @@ import static java.time.temporal.ChronoUnit.HOURS; import static org.apache.james.queue.api.Mails.defaultMail; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; +import static org.awaitility.Awaitility.await; +import static org.awaitility.Duration.FIVE_SECONDS; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; @@ -250,6 +252,34 @@ class RabbitMQMailQueueTest { .containsExactly(name1, name2, name3); } + @Test + void messagesShouldSurviveRabbitMQRestart() throws Exception { + String name1 = "myMail1"; + String name2 = "myMail2"; + String name3 = "myMail3"; + Flux<MailQueue.MailQueueItem> dequeueFlux = Flux.from(getMailQueue().deQueue()); + + getMailQueue().enQueue(defaultMail() + .name(name1) + .build()); + + getMailQueue().enQueue(defaultMail() + .name(name2) + .build()); + + getMailQueue().enQueue(defaultMail() + .name(name3) + .build()); + + rabbitMQExtension.getRabbitMQ().restart(); + + List<MailQueue.MailQueueItem> items = dequeueFlux.take(3).collectList().block(Duration.ofSeconds(10)); + + assertThat(items) + .extracting(item -> item.getMail().getName()) + .containsExactly(name1, name2, name3); + } + private void enqueueSomeMails(Function<Integer, String> namePattern, int emailCount) { IntStream.rangeClosed(1, emailCount) .forEach(Throwing.intConsumer(i -> enQueue(defaultMail() --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org