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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
