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 <andreas.val...@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("<20050430192829.0489.mle...@acm.org>"); + softly.assertThat(Throwing.supplier(() -> mail.getSender().asPrettyString()).get()).isEqualTo("<mle...@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-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org