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 2020/04/17 00:32:19 UTC

[james-project] 27/39: JAMES-3139 RabbitMQEventBus error dispatching tests

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 e530af7d476d5406343063356ce7ccdfa9f2a50f
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Wed Apr 8 16:49:25 2020 +0700

    JAMES-3139 RabbitMQEventBus error dispatching tests
---
 .../james/mailbox/events/RabbitMQEventBusTest.java | 64 ++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
index ee96d11..f462fba 100644
--- a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
+++ b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
@@ -76,6 +76,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 import org.mockito.stubbing.Answer;
 
 import com.google.common.collect.ImmutableSet;
+
 import reactor.core.publisher.Mono;
 import reactor.rabbitmq.BindingSpecification;
 import reactor.rabbitmq.ExchangeSpecification;
@@ -716,6 +717,69 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
 
     }
 
+    @Nested
+    class ErrorDispatchingTest {
+
+        @AfterEach
+        void tearDown() {
+            rabbitMQExtension.getRabbitMQ().unpause();
+        }
+
+        @Test
+        void dispatchShouldNotSendToGroupListenerWhenError() {
+            EventCollector eventCollector = eventCollector();
+            eventBus().register(eventCollector, GROUP_A);
+
+            rabbitMQExtension.getRabbitMQ().pause();
+
+            try {
+                eventBus().dispatch(EVENT, NO_KEYS).block();
+            } catch (Exception e) {
+                // ignore
+            }
+
+            getSpeedProfile().longWaitCondition()
+                .untilAsserted(() -> assertThat(eventCollector.getEvents()).isEmpty());
+        }
+
+        @Test
+        void dispatchShouldNotPersistEventWhenDispatchingNoKeyGetError() {
+            EventCollector eventCollector = eventCollector();
+            eventBus().register(eventCollector, GROUP_A);
+
+            rabbitMQExtension.getRabbitMQ().pause();
+
+            try {
+                eventBus().dispatch(EVENT, NO_KEYS).block();
+            } catch (Exception e) {
+                // ignore
+            }
+
+            getSpeedProfile().longWaitCondition()
+                .untilAsserted(() ->
+                    assertThat(deadLetter().containEvents().block()).isFalse());
+        }
+
+        @Test
+        void dispatchShouldNotPersistEventWhenDispatchingWithKeysGetError() {
+            EventCollector eventCollector = eventCollector();
+            eventBus().register(eventCollector, GROUP_A);
+            eventBus().register(eventCollector, KEY_1);
+
+            rabbitMQExtension.getRabbitMQ().pause();
+
+            try {
+                eventBus().dispatch(EVENT, ImmutableSet.of(KEY_1)).block();
+            } catch (Exception e) {
+                // ignore
+            }
+
+            getSpeedProfile().longWaitCondition()
+                .untilAsserted(() ->
+                    assertThat(deadLetter().containEvents().block()).isFalse());
+        }
+    }
+
     private void assertThatListenerReceiveOneEvent(MailboxListener listener) {
         RabbitMQFixture.awaitAtMostThirtySeconds
             .untilAsserted(() -> verify(listener).event(EVENT));


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org