JAMES-2346 Await is not enough for SendMDN integration tests

We need polling to ensure the messages are well received.


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

Branch: refs/heads/master
Commit: af5a4720073116097d92520976adf81aff17f686
Parents: 85ae28e
Author: benwa <btell...@linagora.com>
Authored: Fri Mar 9 15:05:56 2018 +0700
Committer: benwa <btell...@linagora.com>
Committed: Tue Mar 13 15:11:54 2018 +0700

----------------------------------------------------------------------
 .../cassandra/CassandraSendMDNMethodTest.java    |  5 -----
 .../methods/integration/SendMDNMethodTest.java   | 19 +++++++------------
 .../jmap/memory/MemorySendMDNMethodTest.java     |  4 ----
 3 files changed, 7 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/af5a4720/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java
 
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java
index 231e5e8..515d7cc 100644
--- 
a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java
@@ -47,11 +47,6 @@ public class CassandraSendMDNMethodTest extends 
SendMDNMethodTest {
     protected GuiceJamesServer createJmapServer() {
         return rule.jmapServer(cassandra.getModule());
     }
-
-    @Override
-    protected void await() {
-        rule.await();
-    }
     
     @Override
     protected MessageId randomMessageId() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/af5a4720/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SendMDNMethodTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SendMDNMethodTest.java
 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SendMDNMethodTest.java
index 694d42b..6e72316 100644
--- 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SendMDNMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SendMDNMethodTest.java
@@ -23,6 +23,7 @@ import static com.jayway.restassured.RestAssured.given;
 import static com.jayway.restassured.RestAssured.with;
 import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
 import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
+import static org.apache.james.jmap.TestingConstants.calmlyAwait;
 import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.equalTo;
@@ -69,8 +70,6 @@ public abstract class SendMDNMethodTest {
 
     protected abstract MessageId randomMessageId();
 
-    protected abstract void await();
-
     private AccessToken accessToken;
     private AccessToken bobAccessToken;
     private GuiceJamesServer jmapServer;
@@ -96,10 +95,9 @@ public abstract class SendMDNMethodTest {
         mailboxProbe.createMailbox("#private", USERNAME, 
DefaultMailboxes.INBOX);
         accessToken = HttpJmapAuthentication.authenticateJamesUser(baseUri(), 
USERNAME, PASSWORD);
         bobAccessToken = 
HttpJmapAuthentication.authenticateJamesUser(baseUri(), BOB, BOB_PASSWORD);
-        await();
     }
 
-    public void sendAnInitialMessage() {
+    private void sendAnInitialMessage() {
         String messageCreationId = "creationId";
         String outboxId = getOutboxId(bobAccessToken);
         String requestBody = "[" +
@@ -128,7 +126,7 @@ public abstract class SendMDNMethodTest {
             .body()
             .path(ARGUMENTS + ".created." + messageCreationId + ".id");
 
-        await();
+        calmlyAwait.until(() -> 
!getMessageIdListForAccount(accessToken.serialize()).isEmpty());
     }
 
     private URIBuilder baseUri() {
@@ -236,10 +234,8 @@ public abstract class SendMDNMethodTest {
                 "}}, \"#0\"]]")
             .post("/jmap");
 
-
-        await();
-
         // BOB should have received it
+        calmlyAwait.until(() -> !listMessagesInMailbox(bobAccessToken, 
getInboxId(bobAccessToken)).isEmpty());
         List<String> bobInboxMessageIds = 
listMessagesInMailbox(bobAccessToken, getInboxId(bobAccessToken));
 
         given()
@@ -283,9 +279,8 @@ public abstract class SendMDNMethodTest {
                 "}}, \"#0\"]]")
             .post("/jmap");
 
-        await();
-
         // BOB should have received it
+        calmlyAwait.until(() -> !listMessagesInMailbox(bobAccessToken, 
getInboxId(bobAccessToken)).isEmpty());
         List<String> bobInboxMessageIds = 
listMessagesInMailbox(bobAccessToken, getInboxId(bobAccessToken));
 
         String blobId = with()
@@ -419,7 +414,7 @@ public abstract class SendMDNMethodTest {
             .getList(ARGUMENTS + ".list");
     }
 
-    public List<String> getMessageIdListForAccount(String accessToken) {
+    private List<String> getMessageIdListForAccount(String accessToken) {
         return with()
             .header("Authorization", accessToken)
             .body("[[\"getMessageList\", {}, \"#0\"]]")
@@ -430,7 +425,7 @@ public abstract class SendMDNMethodTest {
             .path(ARGUMENTS + ".messageIds");
     }
 
-    public List<String> listMessagesInMailbox(AccessToken accessToken, String 
mailboxId) {
+    private List<String> listMessagesInMailbox(AccessToken accessToken, String 
mailboxId) {
         return with()
             .header("Authorization", accessToken.serialize())
             .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + 
mailboxId + "\"]}}, \"#0\"]]")

http://git-wip-us.apache.org/repos/asf/james-project/blob/af5a4720/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySendMDNMethodTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySendMDNMethodTest.java
 
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySendMDNMethodTest.java
index 31d5d01..05ed81f 100644
--- 
a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySendMDNMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySendMDNMethodTest.java
@@ -41,10 +41,6 @@ public class MemorySendMDNMethodTest extends 
SendMDNMethodTest {
     }
     
     @Override
-    protected void await() {
-    }
-    
-    @Override
     protected MessageId randomMessageId() {
         return new 
InMemoryMessageId.Factory().fromString(String.valueOf(random.nextInt(100000) + 
100));
     }


---------------------------------------------------------------------
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