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 bt...@apache.org on 2020/07/10 01:49:06 UTC
[james-project] 04/09: JAMES-3295
remoteDeliveryShouldStoreTemporaryFailureAsPermanentWhenExceedsMaximumRetries
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
commit 3a80f69e9643c577f3b5fcffabb0db9e7212235b
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Mon Jul 6 16:52:29 2020 +0700
JAMES-3295 remoteDeliveryShouldStoreTemporaryFailureAsPermanentWhenExceedsMaximumRetries
---
.../mailets/RemoteDeliveryErrorHandlingTest.java | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/RemoteDeliveryErrorHandlingTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/RemoteDeliveryErrorHandlingTest.java
index e9fcb39..0db780c 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/RemoteDeliveryErrorHandlingTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/RemoteDeliveryErrorHandlingTest.java
@@ -46,6 +46,7 @@ import org.apache.james.mock.smtp.server.testing.MockSmtpServerExtension.DockerM
import org.apache.james.modules.protocols.SmtpGuiceProbe;
import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.transport.matchers.All;
+import org.apache.james.transport.matchers.AtMost;
import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.MailRepositoryProbeImpl;
import org.apache.james.utils.SMTPMessageSender;
@@ -70,6 +71,7 @@ public class RemoteDeliveryErrorHandlingTest {
private static final String LOCALHOST = "localhost";
private static final MailRepositoryUrl REMOTE_DELIVERY_TEMPORARY_ERROR_REPOSITORY = MailRepositoryUrl.from("memory://var/mail/error/remote-delivery/temporary");
private static final MailRepositoryUrl REMOTE_DELIVERY_PERMANENT_ERROR_REPOSITORY = MailRepositoryUrl.from("memory://var/mail/error/remote-delivery/permanent");
+ private static final Integer MAX_EXECUTIONS = 2;
@RegisterExtension
static MockSmtpServerExtension mockSmtpServerExtension = new MockSmtpServerExtension();
@@ -99,7 +101,12 @@ public class RemoteDeliveryErrorHandlingTest {
.addProperty("maxRetries", "1")
.addProperty("delayTime", "0")
.addProperty("bounceProcessor", "remote-delivery-error")
- .matcher(All.class)))
+ .matcher(AtMost.class)
+ .matcherCondition(MAX_EXECUTIONS.toString()))
+ .addMailet(MailetConfiguration.builder()
+ .matcher(All.class)
+ .mailet(ToRepository.class)
+ .addProperty("repositoryPath", REMOTE_DELIVERY_PERMANENT_ERROR_REPOSITORY.asString())))
.putProcessor(ProcessorConfiguration.builder()
.state("remote-delivery-error")
.addMailet(MailetConfiguration.builder()
@@ -205,7 +212,6 @@ public class RemoteDeliveryErrorHandlingTest {
}
@Test
- @Disabled("We need to count retries")
void remoteDeliveryShouldStoreTemporaryFailureAsPermanentWhenExceedsMaximumRetries(SMTPMessageSender smtpMessageSender, DockerMockSmtp dockerMockSmtp) throws Exception {
// Given a failed remote delivery
dockerMockSmtp.getConfigurationClient()
@@ -230,6 +236,16 @@ public class RemoteDeliveryErrorHandlingTest {
.param("queue", MailQueueFactory.SPOOL.asString())
.param("processor", TRANSPORT_PROCESSOR)
.patch("/mailRepositories/" + REMOTE_DELIVERY_TEMPORARY_ERROR_REPOSITORY.getPath().urlEncoded() + "/mails");
+ awaitAtMostOneMinute
+ .untilAsserted(() -> assertThat(jamesServer.getProbe(MailRepositoryProbeImpl.class)
+ .getRepositoryMailCount(REMOTE_DELIVERY_TEMPORARY_ERROR_REPOSITORY))
+ .isEqualTo(1));
+ given()
+ .spec(webAdminApi)
+ .param("action", "reprocess")
+ .param("queue", MailQueueFactory.SPOOL.asString())
+ .param("processor", TRANSPORT_PROCESSOR)
+ .patch("/mailRepositories/" + REMOTE_DELIVERY_TEMPORARY_ERROR_REPOSITORY.getPath().urlEncoded() + "/mails");
// Then mail should be stored in permanent error repository
awaitAtMostOneMinute
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org