MAILBOX-371 Test out of order registrations
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/7f2f8fec Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/7f2f8fec Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/7f2f8fec Branch: refs/heads/master Commit: 7f2f8fec82118a8a8a31917bf779e2674f2f2cb2 Parents: a760297 Author: Benoit Tellier <[email protected]> Authored: Fri Jan 18 12:07:31 2019 +0700 Committer: Benoit Tellier <[email protected]> Committed: Mon Jan 21 10:04:49 2019 +0700 ---------------------------------------------------------------------- .../james/mailbox/events/GroupContract.java | 24 ++++++++++++++++++++ .../james/mailbox/events/KeyContract.java | 24 ++++++++++++++++++++ 2 files changed, 48 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/7f2f8fec/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java index 93194e4..ac15639 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/GroupContract.java @@ -73,6 +73,18 @@ public interface GroupContract { } @Test + default void registerShouldNotDispatchPastEventsForGroups() throws Exception { + MailboxListener listener = newListener(); + + eventBus().dispatch(EVENT, NO_KEYS).block(); + + eventBus().register(listener, GROUP_A); + + verify(listener, after(FIVE_HUNDRED_MS).never()) + .event(any()); + } + + @Test default void listenerGroupShouldReceiveEvents() throws Exception { MailboxListener listener = newListener(); @@ -254,5 +266,17 @@ public interface GroupContract { verify(mailboxListener, after(FIVE_HUNDRED_MS).never()) .event(any()); } + + @Test + default void registerShouldNotDispatchPastEventsForGroupsInADistributedContext() throws Exception { + MailboxListener listener = newListener(); + + eventBus().dispatch(EVENT, NO_KEYS).block(); + + eventBus2().register(listener, GROUP_A); + + verify(listener, after(FIVE_HUNDRED_MS).never()) + .event(any()); + } } } http://git-wip-us.apache.org/repos/asf/james-project/blob/7f2f8fec/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java index 6e82af0..317925a 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/KeyContract.java @@ -164,6 +164,18 @@ public interface KeyContract extends EventBusContract { } @Test + default void registerShouldNotDispatchPastEvents() throws Exception { + MailboxListener listener = newListener(); + + eventBus().dispatch(EVENT, ImmutableSet.of(KEY_1)).block(); + + eventBus().register(listener, KEY_1); + + verify(listener, after(FIVE_HUNDRED_MS).never()) + .event(any()); + } + + @Test default void callingAllUnregisterMethodShouldUnregisterTheListener() throws Exception { MailboxListener listener = newListener(); Registration registration = eventBus().register(listener, KEY_1); @@ -321,5 +333,17 @@ public interface KeyContract extends EventBusContract { verify(mailboxListener2, timeout(ONE_SECOND).times(1)).event(any()); } + @Test + default void registerShouldNotDispatchPastEventsInDistributedContext() throws Exception { + MailboxListener listener = newListener(); + + eventBus2().dispatch(EVENT, ImmutableSet.of(KEY_1)).block(); + + eventBus().register(listener, KEY_1); + + verify(listener, after(FIVE_HUNDRED_MS).never()) + .event(any()); + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
