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