You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/11/04 11:23:54 UTC
[james-project] 18/30: JAMES-2937 Dequeue should work after network
outage
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 00acb85935ef99c0a262aa3f2a94a57e79d0c507
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Oct 31 14:34:20 2019 +0700
JAMES-2937 Dequeue should work after network outage
---
.../queue/rabbitmq/RabbitMQMailQueueTest.java | 32 ++++++++++++++++++++++
1 file changed, 32 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 9ba2b50..f8f7bd3 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
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verify;
import java.time.Duration;
import java.time.Instant;
+import java.util.List;
import java.util.function.Function;
import java.util.stream.IntStream;
import java.util.stream.Stream;
@@ -218,6 +219,37 @@ class RabbitMQMailQueueTest {
}
+ @Test
+ void dequeueShouldWorkAfterNetworkOutage() 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());
+
+ rabbitMQExtension.getRabbitMQ().pause();
+ Thread.sleep(2000);
+
+ getMailQueue().enQueue(defaultMail()
+ .name(name2)
+ .build());
+
+ rabbitMQExtension.getRabbitMQ().unpause();
+ Thread.sleep(100);
+
+ getMailQueue().enQueue(defaultMail()
+ .name(name3)
+ .build());
+
+ 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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org