You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2018/05/22 13:21:13 UTC
[2/2] james-project git commit: JAMES-2402 ToRepositoryTest was
unstable
JAMES-2402 ToRepositoryTest was unstable
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b11d0be1
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b11d0be1
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b11d0be1
Branch: refs/heads/master
Commit: b11d0be1a089cdb31e8b75314ab7c134f4d77532
Parents: 43a09f9
Author: benwa <bt...@linagora.com>
Authored: Mon May 21 19:21:58 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Tue May 22 15:20:40 2018 +0200
----------------------------------------------------------------------
.../transport/mailets/ToRepositoryTest.java | 18 ++++++++------
.../apache/james/utils/IMAPMessageReader.java | 26 ++++++++++++++++----
2 files changed, 32 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/b11d0be1/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
index ede133d..04c4abd 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
@@ -43,6 +43,7 @@ import org.apache.james.utils.SMTPMessageSender;
import org.apache.james.utils.WebAdminGuiceProbe;
import org.apache.james.webadmin.WebAdminUtils;
import org.apache.james.webadmin.routes.MailRepositoriesRoutes;
+import org.apache.james.webadmin.routes.TasksRoutes;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -112,21 +113,25 @@ public class ToRepositoryTest {
awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
- with()
+ String taskId = with()
.spec(webAdminAPI)
.queryParam("processor", ProcessorConfiguration.STATE_TRANSPORT)
.queryParam("action", "reprocess")
- .patch(MailRepositoriesRoutes.MAIL_REPOSITORIES
+ .patch(MailRepositoriesRoutes.MAIL_REPOSITORIES
+ "/" + URLEncoder.encode(CUSTOM_REPOSITORY, StandardCharsets.UTF_8.displayName())
+ "/mails")
.jsonPath()
- .get("taskId");
+ .getString("taskId");
+
+ with()
+ .spec(webAdminAPI)
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitAtMostOneMinute)
- .hasMessageCount(2);
+ .awaitMessageCount(awaitAtMostOneMinute, 2);
awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 0);
}
@@ -152,8 +157,7 @@ public class ToRepositoryTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitAtMostOneMinute)
- .hasMessageCount(1);
+ .awaitMessageCount(awaitAtMostOneMinute, 1);
awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b11d0be1/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
index 071c8a8..4d83fba 100644
--- a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
+++ b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
@@ -66,11 +66,6 @@ public class IMAPMessageReader extends ExternalResource implements Closeable {
return this;
}
- public boolean hasMessageCount(int numberOfMessages) throws IOException {
- return imapClient.getReplyString()
- .contains(numberOfMessages + " EXISTS");
- }
-
public boolean hasAMessage() throws IOException {
imapClient.fetch("1:1", "ALL");
return imapClient.getReplyString()
@@ -82,6 +77,27 @@ public class IMAPMessageReader extends ExternalResource implements Closeable {
return this;
}
+ public IMAPMessageReader awaitMessageCount(ConditionFactory conditionFactory, int messageCount) {
+ conditionFactory.until(() -> {
+ try {
+ imapClient.fetch("1:*", "ALL");
+ return countFetchedEntries() == messageCount;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ });
+ return this;
+ }
+
+ private long countFetchedEntries() {
+ return Splitter.on("\n")
+ .trimResults()
+ .splitToList(imapClient.getReplyString())
+ .stream()
+ .filter(s -> s.startsWith("*"))
+ .count();
+ }
+
public IMAPMessageReader awaitNoMessage(ConditionFactory conditionFactory) throws IOException {
conditionFactory.until(this::userDoesNotReceiveMessage);
return this;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org