You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2020/11/06 02:28:47 UTC
[james-project] 09/12: JAMES-3389 check MailQueue contents after
using mailtransfer api
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 05528b585798b1aaf56c54b5837c6140c8a364c9
Author: Andreas Valdma <an...@nortal.com>
AuthorDate: Wed Nov 4 17:25:03 2020 +0200
JAMES-3389 check MailQueue contents after using mailtransfer api
---
.../james/routes/TransferEmailRoutesTest.java | 38 ++++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/server/protocols/webadmin/webadmin-mail-over-web/src/test/java/org/apache/james/routes/TransferEmailRoutesTest.java b/server/protocols/webadmin/webadmin-mail-over-web/src/test/java/org/apache/james/routes/TransferEmailRoutesTest.java
index 169f9cc..ea71371 100644
--- a/server/protocols/webadmin/webadmin-mail-over-web/src/test/java/org/apache/james/routes/TransferEmailRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mail-over-web/src/test/java/org/apache/james/routes/TransferEmailRoutesTest.java
@@ -24,29 +24,44 @@ import static io.restassured.config.EncoderConfig.encoderConfig;
import static io.restassured.config.RestAssuredConfig.newConfig;
import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.time.temporal.TemporalUnit;
+import org.apache.james.queue.api.MailQueue;
+import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.queue.api.RawMailQueueItemDecoratorFactory;
import org.apache.james.queue.memory.MemoryMailQueueFactory;
+import org.apache.james.server.core.MailImpl;
import org.apache.james.util.ClassLoaderUtils;
import org.apache.james.webadmin.WebAdminServer;
import org.apache.james.webadmin.WebAdminUtils;
import org.apache.james.webadmin.routes.TransferEmailRoutes;
+import org.apache.mailet.Mail;
+import org.assertj.core.api.SoftAssertions;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import com.github.fge.lambdas.Throwing;
import io.restassured.RestAssured;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.http.ContentType;
import io.restassured.specification.RequestSpecification;
+import reactor.core.publisher.Flux;
public class TransferEmailRoutesTest {
private WebAdminServer webAdminServer;
+ private MailQueue mailQueue;
+
private WebAdminServer createServer() {
- MemoryMailQueueFactory memoryMailQueueFactory = new MemoryMailQueueFactory(new RawMailQueueItemDecoratorFactory());
- return WebAdminUtils.createWebAdminServer(new TransferEmailRoutes(memoryMailQueueFactory)).start();
+ MailQueueFactory mailQueueFactory = new MemoryMailQueueFactory(new RawMailQueueItemDecoratorFactory());
+ WebAdminServer webAdminServer = WebAdminUtils.createWebAdminServer(new TransferEmailRoutes(mailQueueFactory)).start();
+ mailQueue = ((MailQueue) mailQueueFactory.getQueue(MailQueueFactory.SPOOL).get());
+ return webAdminServer;
}
@BeforeEach
@@ -81,6 +96,11 @@ public class TransferEmailRoutesTest {
.then()
.assertThat()
.statusCode(500);
+
+ Assertions.assertThrows(IllegalStateException.class,
+ () -> {
+ MailQueue.MailQueueItem mailQueueItem = ((Flux<MailQueue.MailQueueItem>) mailQueue.deQueue()).blockFirst(Duration.of(100, ChronoUnit.MILLIS));
+ });
}
@Test
@@ -92,6 +112,15 @@ public class TransferEmailRoutesTest {
.then()
.assertThat()
.statusCode(201);
+
+ MailQueue.MailQueueItem mailQueueItem = ((Flux<MailQueue.MailQueueItem>) mailQueue.deQueue()).blockFirst(Duration.of(100, ChronoUnit.MILLIS));
+ Mail mail = mailQueueItem.getMail();
+
+ SoftAssertions.assertSoftly(softly -> {
+ softly.assertThat(Throwing.supplier(() -> mail.getMessage().getMessageID()).get()).isEqualTo("<20...@acm.org>");
+ softly.assertThat(Throwing.supplier(() -> mail.getSender().asPrettyString()).get()).isEqualTo("<ml...@acm.org>");
+ softly.assertThat(Throwing.supplier(() -> mail.getMessage().getHeader("X-Mailer")).get()[0]).isEqualTo("http://www.phpclasses.org/mimemessage $Revision: 1.63 $ (mail)");
+ });
}
@Test
@@ -103,5 +132,10 @@ public class TransferEmailRoutesTest {
.then()
.assertThat()
.statusCode(500);
+
+ Assertions.assertThrows(IllegalStateException.class,
+ () -> {
+ MailQueue.MailQueueItem mailQueueItem = ((Flux<MailQueue.MailQueueItem>) mailQueue.deQueue()).blockFirst(Duration.of(100, ChronoUnit.MILLIS));
+ });
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org