MAILBOX-369 Isolate concurrent tests to a nested class

Therefore they could not affect to other tests cases because concurrent
tests are running on another docker rabbitmq. Experiments show that
concurrent tests implicitly impact to other tests correctness, because they
fire a lot of events without consuming them, then later, other tests starting
consume events are fired from concurrent tests, and make assertions fail

To ensure docker rabbitmq is cleaned up after each test are quite difficult
to archive because some queues, exchanges are durable, even start & stop
docker doesn't make them abandon there messages. This could be considered as
a workaround for this issue. Creating new docker and start it in every test
is expensive and leads to minutes to finish this test class.


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/97555fe9
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/97555fe9
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/97555fe9

Branch: refs/heads/master
Commit: 97555fe928ac04d71521233bf2fac28a0292ab2f
Parents: 485dd95
Author: tran tien duc <[email protected]>
Authored: Mon Jan 21 10:36:09 2019 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Tue Jan 22 09:20:12 2019 +0700

----------------------------------------------------------------------
 .../mailbox/events/RabbitMQEventBusTest.java    | 26 +++++++++++++++-----
 1 file changed, 20 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/97555fe9/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
----------------------------------------------------------------------
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 b6f811d..910b83e 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
@@ -77,7 +77,6 @@ import reactor.rabbitmq.Sender;
 import reactor.rabbitmq.SenderOptions;
 
 class RabbitMQEventBusTest implements 
GroupContract.SingleEventBusGroupContract, 
GroupContract.MultipleEventBusGroupContract,
-    EventBusConcurrentTestContract.MultiEventBusConcurrentContract, 
EventBusConcurrentTestContract.SingleEventBusConcurrentContract,
     KeyContract.SingleEventBusKeyContract, 
KeyContract.MultipleEventBusKeyContract,
     ErrorHandlingContract {
 
@@ -138,11 +137,6 @@ class RabbitMQEventBusTest implements 
GroupContract.SingleEventBusGroupContract,
     }
 
     @Override
-    public EventBus eventBus3() {
-        return eventBus3;
-    }
-
-    @Override
     @Test
     @Disabled("This test is failing by RabbitMQEventBus exponential backoff is 
not implemented at this time")
     public void failingRegisteredListenersShouldNotAbortRegisteredDelivery() {
@@ -168,6 +162,26 @@ class RabbitMQEventBusTest implements 
GroupContract.SingleEventBusGroupContract,
     }
 
     @Nested
+    class ConcurrentTest implements 
EventBusConcurrentTestContract.MultiEventBusConcurrentContract,
+        EventBusConcurrentTestContract.SingleEventBusConcurrentContract {
+
+        @Override
+        public EventBus eventBus3() {
+            return eventBus3;
+        }
+
+        @Override
+        public EventBus eventBus2() {
+            return eventBus2;
+        }
+
+        @Override
+        public EventBus eventBus() {
+            return eventBus;
+        }
+    }
+
+    @Nested
     class AtLeastOnceTest {
 
         @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to