This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit ae13dd085e41f143ba16f9aabf8854b1e21bbf2d
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Fri Jan 10 11:14:44 2020 +0700

    [Refactoring] Migrate to Junit 5 RabbitMQEventDeadLettersIntegrationTest
---
 .../RabbitMQEventDeadLettersIntegrationTest.java   | 161 ++++++++++++---------
 1 file changed, 93 insertions(+), 68 deletions(-)

diff --git 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
index e25fcc4..bb761dc 100644
--- 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
+++ 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
@@ -36,9 +36,13 @@ import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
-import org.apache.james.DockerCassandraRule;
+import org.apache.james.CassandraExtension;
+import org.apache.james.CassandraRabbitMQJamesServerMain;
+import org.apache.james.DockerElasticSearchExtension;
 import org.apache.james.GuiceJamesServer;
+import org.apache.james.GuiceModuleTestExtension;
+import org.apache.james.JamesServerBuilder;
+import org.apache.james.JamesServerExtension;
 import org.apache.james.core.Username;
 import org.apache.james.junit.categories.BasicFeature;
 import org.apache.james.mailbox.DefaultMailboxes;
@@ -47,31 +51,36 @@ import org.apache.james.mailbox.events.Group;
 import org.apache.james.mailbox.events.MailboxListener;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
 import org.apache.james.modules.MailboxProbeImpl;
+import org.apache.james.modules.RabbitMQExtension;
+import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.probe.DataProbe;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.WebAdminGuiceProbe;
 import org.apache.james.webadmin.WebAdminUtils;
+import org.apache.james.webadmin.integration.WebadminIntergrationTestModule;
 import org.apache.james.webadmin.routes.EventDeadLettersRoutes;
 import org.apache.james.webadmin.routes.TasksRoutes;
 import org.awaitility.Awaitility;
 import org.awaitility.Duration;
 import org.awaitility.core.ConditionFactory;
 import org.eclipse.jetty.http.HttpStatus;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
 import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.api.extension.RegisterExtension;
 
+import com.google.inject.Module;
 import com.google.inject.multibindings.Multibinder;
 
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
 
 @Category(BasicFeature.class)
-public class RabbitMQEventDeadLettersIntegrationTest {
+class RabbitMQEventDeadLettersIntegrationTest {
     public static class RetryEventsListenerGroup extends Group {
 
     }
@@ -129,6 +138,42 @@ public class RabbitMQEventDeadLettersIntegrationTest {
         }
     }
 
+    public static class RetryEventsListenerExtension implements 
GuiceModuleTestExtension {
+        private RetryEventsListener retryEventsListener;
+
+        @Override
+        public void beforeEach(ExtensionContext extensionContext) throws 
Exception {
+            retryEventsListener = new RetryEventsListener();
+        }
+
+        @Override
+        public Module getModule() {
+            return binder -> Multibinder.newSetBinder(binder, 
MailboxListener.GroupMailboxListener.class)
+                .addBinding()
+                .toInstance(retryEventsListener);
+        }
+
+        RetryEventsListener retryEventsListener() {
+            return retryEventsListener;
+        }
+    }
+
+    private static final int LIMIT_TO_10_MESSAGES = 10;
+    private static final RetryEventsListenerExtension EVENT_EXTENSION = new 
RetryEventsListenerExtension();
+
+    @RegisterExtension
+    static JamesServerExtension testExtension = new JamesServerBuilder()
+        .extension(new DockerElasticSearchExtension())
+        .extension(new CassandraExtension())
+        .extension(new AwsS3BlobStoreExtension())
+        .extension(new RabbitMQExtension())
+        .extension(EVENT_EXTENSION)
+        .server(configuration -> 
GuiceJamesServer.forConfiguration(configuration)
+            .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
+            .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES))
+            .overrideWith(new WebadminIntergrationTestModule()))
+        .build();
+
     //This value is duplicated from default configuration to ensure we keep 
the same behavior over time
     //unless we really want to change that default value
     private static final int MAX_RETRIES = 3;
@@ -138,14 +183,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     private static final String BOB_PASSWORD = "bobPassword";
     private static final String EVENTS_ACTION = "reDeliver";
     private static final String GROUP_ID = new 
RetryEventsListenerGroup().asString();
-
     private static final MailboxPath BOB_INBOX_PATH = 
MailboxPath.inbox(Username.of(BOB));
 
-    @Rule
-    public DockerCassandraRule cassandra = new DockerCassandraRule();
-    @Rule
-    public CassandraRabbitMQAwsS3JmapTestRule jamesTestRule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
-
     private Duration slowPacedPollInterval = ONE_HUNDRED_MILLISECONDS;
     private ConditionFactory calmlyAwait = Awaitility.with()
         .pollInterval(slowPacedPollInterval)
@@ -154,19 +193,10 @@ public class RabbitMQEventDeadLettersIntegrationTest {
         .pollDelay(slowPacedPollInterval)
         .await();
     private ConditionFactory awaitAtMostTenSeconds = calmlyAwait.atMost(10, 
TimeUnit.SECONDS);
-    private RetryEventsListener retryEventsListener;
-    private GuiceJamesServer guiceJamesServer;
     private MailboxProbeImpl mailboxProbe;
 
-    @Before
-    public void setUp() throws Exception {
-        retryEventsListener = new RetryEventsListener();
-        guiceJamesServer = jamesTestRule.jmapServer(cassandra.getModule())
-            .overrideWith(binder -> Multibinder.newSetBinder(binder, 
MailboxListener.GroupMailboxListener.class)
-                .addBinding()
-                .toInstance(retryEventsListener));
-        guiceJamesServer.start();
-
+    @BeforeEach
+    void setUp(GuiceJamesServer guiceJamesServer) throws Exception {
         DataProbe dataProbe = guiceJamesServer.getProbe(DataProbeImpl.class);
         mailboxProbe = guiceJamesServer.getProbe(MailboxProbeImpl.class);
         WebAdminGuiceProbe webAdminGuiceProbe = 
guiceJamesServer.getProbe(WebAdminGuiceProbe.class);
@@ -178,11 +208,6 @@ public class RabbitMQEventDeadLettersIntegrationTest {
         dataProbe.addUser(BOB, BOB_PASSWORD);
     }
 
-    @After
-    public void tearDown() {
-        guiceJamesServer.stop();
-    }
-
     private MailboxId generateInitialEvent() {
         return mailboxProbe.createMailbox(BOB_INBOX_PATH);
     }
@@ -207,8 +232,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void failedEventShouldBeStoredInDeadLetterUnderItsGroupId() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void failedEventShouldBeStoredInDeadLetterUnderItsGroupId() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
 
         waitForCalls(MAX_RETRIES + 1);
@@ -222,11 +247,11 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void successfulEventShouldNotBeStoredInDeadLetter() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES - 1);
+    void successfulEventShouldNotBeStoredInDeadLetter() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES - 
1);
         generateInitialEvent();
 
-        calmlyAwait.atMost(ONE_MINUTE).until(() -> 
!retryEventsListener.successfulEvents.isEmpty());
+        calmlyAwait.atMost(ONE_MINUTE).until(() -> 
!EVENT_EXTENSION.retryEventsListener().successfulEvents.isEmpty());
 
         when()
             .get(EventDeadLettersRoutes.BASE_PATH + "/groups")
@@ -237,8 +262,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void groupIdOfFailedEventShouldBeStoredInDeadLetter() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void groupIdOfFailedEventShouldBeStoredInDeadLetter() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
 
         waitForCalls(MAX_RETRIES + 1);
@@ -252,8 +277,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void failedEventShouldBeStoredInDeadLetter() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void failedEventShouldBeStoredInDeadLetter() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         MailboxId mailboxId = generateInitialEvent();
 
         waitForCalls(MAX_RETRIES + 1);
@@ -273,8 +298,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void multipleFailedEventShouldBeStoredInDeadLetter() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void multipleFailedEventShouldBeStoredInDeadLetter() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
         generateSecondEvent();
 
@@ -289,8 +314,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void failedEventShouldNotBeInDeadLetterAfterBeingDeleted() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void failedEventShouldNotBeInDeadLetterAfterBeingDeleted() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
 
         waitForCalls(MAX_RETRIES + 1);
@@ -307,8 +332,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void taskShouldBeCompletedAfterSuccessfulRedelivery() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void taskShouldBeCompletedAfterSuccessfulRedelivery() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
 
         waitForCalls(MAX_RETRIES + 1);
@@ -334,8 +359,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void failedEventShouldNotBeInDeadLettersAfterSuccessfulRedelivery() 
{
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void failedEventShouldNotBeInDeadLettersAfterSuccessfulRedelivery() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
 
         waitForCalls(MAX_RETRIES + 1);
@@ -359,8 +384,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void 
failedEventShouldBeCorrectlyProcessedByListenerAfterSuccessfulRedelivery() 
throws InterruptedException {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void 
failedEventShouldBeCorrectlyProcessedByListenerAfterSuccessfulRedelivery() 
throws InterruptedException {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
 
         waitForCalls(MAX_RETRIES + 1);
@@ -377,16 +402,16 @@ public class RabbitMQEventDeadLettersIntegrationTest {
             .basePath(TasksRoutes.BASE)
             .get(taskId + "/await");
 
-        awaitAtMostTenSeconds.until(() -> 
retryEventsListener.getSuccessfulEvents().size() == 1);
+        awaitAtMostTenSeconds.until(() -> 
EVENT_EXTENSION.retryEventsListener().getSuccessfulEvents().size() == 1);
     }
 
     private void waitForCalls(int count) {
-        calmlyAwait.atMost(ONE_MINUTE).until(() -> 
retryEventsListener.totalCalls.intValue() >= count);
+        calmlyAwait.atMost(ONE_MINUTE).until(() -> 
EVENT_EXTENSION.retryEventsListener().totalCalls.intValue() >= count);
     }
 
     @Test
-    public void taskShouldBeCompletedAfterSuccessfulGroupRedelivery() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void taskShouldBeCompletedAfterSuccessfulGroupRedelivery() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
         generateSecondEvent();
 
@@ -410,8 +435,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void 
multipleFailedEventsShouldNotBeInDeadLettersAfterSuccessfulGroupRedelivery() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void 
multipleFailedEventsShouldNotBeInDeadLettersAfterSuccessfulGroupRedelivery() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
         generateSecondEvent();
 
@@ -436,8 +461,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void 
multipleFailedEventsShouldBeCorrectlyProcessedByListenerAfterSuccessfulGroupRedelivery()
 {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void 
multipleFailedEventsShouldBeCorrectlyProcessedByListenerAfterSuccessfulGroupRedelivery()
 {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
         generateSecondEvent();
 
@@ -453,12 +478,12 @@ public class RabbitMQEventDeadLettersIntegrationTest {
             .basePath(TasksRoutes.BASE)
             .get(taskId + "/await");
 
-        awaitAtMostTenSeconds.until(() -> 
retryEventsListener.getSuccessfulEvents().size() == 2);
+        awaitAtMostTenSeconds.until(() -> 
EVENT_EXTENSION.retryEventsListener().getSuccessfulEvents().size() == 2);
     }
 
     @Test
-    public void taskShouldBeCompletedAfterSuccessfulAllRedelivery() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void taskShouldBeCompletedAfterSuccessfulAllRedelivery() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
         generateSecondEvent();
 
@@ -481,8 +506,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void 
multipleFailedEventsShouldNotBeInDeadLettersAfterSuccessfulAllRedelivery() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void 
multipleFailedEventsShouldNotBeInDeadLettersAfterSuccessfulAllRedelivery() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
         generateSecondEvent();
 
@@ -507,8 +532,8 @@ public class RabbitMQEventDeadLettersIntegrationTest {
     }
 
     @Test
-    public void 
multipleFailedEventsShouldBeCorrectlyProcessedByListenerAfterSuccessfulAllRedelivery()
 {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);
+    void 
multipleFailedEventsShouldBeCorrectlyProcessedByListenerAfterSuccessfulAllRedelivery()
 {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES + 
1);
         generateInitialEvent();
         generateSecondEvent();
 
@@ -524,13 +549,13 @@ public class RabbitMQEventDeadLettersIntegrationTest {
             .basePath(TasksRoutes.BASE)
             .get(taskId + "/await");
 
-        awaitAtMostTenSeconds.until(() -> 
retryEventsListener.getSuccessfulEvents().size() == 2);
+        awaitAtMostTenSeconds.until(() -> 
EVENT_EXTENSION.retryEventsListener().getSuccessfulEvents().size() == 2);
     }
 
-    @Ignore("retry rest API delivers only once, see JAMES-2907. We need same 
retry cound for this test to work")
+    @Disabled("retry rest API delivers only once, see JAMES-2907. We need same 
retry cound for this test to work")
     @Test
-    public void failedEventShouldStillBeInDeadLettersAfterFailedRedelivery() {
-        retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES * 2 + 1);
+    void failedEventShouldStillBeInDeadLettersAfterFailedRedelivery() {
+        
EVENT_EXTENSION.retryEventsListener().callsPerEventBeforeSuccess(MAX_RETRIES * 
2 + 1);
         generateInitialEvent();
 
         waitForCalls(MAX_RETRIES + 1);


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

Reply via email to