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