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


The following commit(s) were added to refs/heads/master by this push:
     new 71d06b5c2d JAMES-3899 - Fix test case unstable (#1695)
71d06b5c2d is described below

commit 71d06b5c2d4e5cb26a021012657e251adcd801e0
Author: vttran <vtt...@linagora.com>
AuthorDate: Thu Aug 24 04:39:28 2023 +0700

    JAMES-3899 - Fix test case unstable (#1695)
    
    - ImapTestClient got an error "failed. Command not valid in this state."
---
 .../WithStorageDirectiveIntegrationTest.java       | 42 +++++++++++++++-------
 1 file changed, 30 insertions(+), 12 deletions(-)

diff --git 
a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/WithStorageDirectiveIntegrationTest.java
 
b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/WithStorageDirectiveIntegrationTest.java
index e7b28c82bd..39c7060fc6 100644
--- 
a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/WithStorageDirectiveIntegrationTest.java
+++ 
b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/WithStorageDirectiveIntegrationTest.java
@@ -26,8 +26,12 @@ import static 
org.apache.james.mailets.configuration.Constants.PASSWORD;
 import static org.apache.james.mailets.configuration.Constants.RECIPIENT;
 import static 
org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
+import static org.awaitility.Durations.FIVE_HUNDRED_MILLISECONDS;
+import static org.awaitility.Durations.TEN_SECONDS;
 
 import java.io.File;
+import java.io.IOException;
 
 import org.apache.james.mailets.configuration.CommonProcessors;
 import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -38,10 +42,11 @@ import org.apache.james.probe.DataProbe;
 import org.apache.james.transport.mailets.WithStorageDirective;
 import org.apache.james.transport.matchers.SenderIsLocal;
 import org.apache.james.utils.DataProbeImpl;
-import org.apache.james.utils.MailRepositoryProbeImpl;
 import org.apache.james.utils.SMTPMessageSender;
 import org.apache.james.utils.SpoolerProbe;
 import org.apache.james.utils.TestIMAPClient;
+import org.awaitility.Awaitility;
+import org.awaitility.core.ConditionFactory;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -56,8 +61,10 @@ class WithStorageDirectiveIntegrationTest {
     private TemporaryJamesServer jamesServer;
 
     @AfterEach
-    void tearDown() {
+    void tearDown() throws IOException {
         jamesServer.shutdown();
+        testIMAPClient.close();
+        messageSender.close();
     }
 
     @Test
@@ -116,16 +123,27 @@ class WithStorageDirectiveIntegrationTest {
             .sendMessage(FROM, RECIPIENT);
 
         awaitAtMostOneMinute.until(() -> 
jamesServer.getProbe(SpoolerProbe.class).processingFinished());
-        testIMAPClient.connect(LOCALHOST_IP, 
jamesServer.getProbe(ImapGuiceProbe.class).getImapPort())
-            .login(RECIPIENT, PASSWORD)
-            .select("target1")
-            .awaitMessage(awaitAtMostOneMinute)
-            .close();
-        testIMAPClient.connect(LOCALHOST_IP, 
jamesServer.getProbe(ImapGuiceProbe.class).getImapPort())
-            .login(RECIPIENT, PASSWORD)
-            .select("target2")
-            .awaitMessage(awaitAtMostOneMinute)
-            .close();
+
+        ConditionFactory imapAwait = Awaitility.with()
+            .pollInterval(FIVE_HUNDRED_MILLISECONDS)
+            .await()
+            .atMost(TEN_SECONDS);
+
+        awaitAtMostOneMinute.untilAsserted(() ->
+            assertThatCode(() -> testIMAPClient.connect(LOCALHOST_IP, 
jamesServer.getProbe(ImapGuiceProbe.class).getImapPort())
+                .login(RECIPIENT, PASSWORD)
+                .select("target1")
+                .awaitMessage(imapAwait)
+                .close())
+                .doesNotThrowAnyException());
+
+        awaitAtMostOneMinute.untilAsserted(() ->
+            assertThatCode(() -> testIMAPClient.connect(LOCALHOST_IP, 
jamesServer.getProbe(ImapGuiceProbe.class).getImapPort())
+                .login(RECIPIENT, PASSWORD)
+                .select("target2")
+                .awaitMessage(imapAwait)
+                .close())
+                .doesNotThrowAnyException());
     }
 
     @Test


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

Reply via email to