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 84386f6537125cf4dc45669066c5a0564c9afb52
Author: Matthieu Baechler <matth...@apache.org>
AuthorDate: Fri Nov 29 15:29:55 2019 +0100

    JAMES-2979 avoid message to be detected as spam
    
        Also, send only 100 mails as it's already long enough
        and create Inbox before starting to avoid race conditions
        for Inbox creation
---
 server/container/guice/guice-common/pom.xml        |  5 ++++
 .../apache/james/MailsShouldBeWellReceived.java    | 35 +++++++++++++++++-----
 2 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/server/container/guice/guice-common/pom.xml 
b/server/container/guice/guice-common/pom.xml
index 0ca1dbd..f3622a6 100644
--- a/server/container/guice/guice-common/pom.xml
+++ b/server/container/guice/guice-common/pom.xml
@@ -62,6 +62,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-guice-mailbox</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-imap</artifactId>
             <scope>test</scope>
         </dependency>
diff --git 
a/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java
 
b/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java
index 0088658..e06e1b5 100644
--- 
a/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java
+++ 
b/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java
@@ -19,11 +19,16 @@
 
 package org.apache.james;
 
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.UUID;
 
 import org.apache.james.core.Domain;
+import org.apache.james.mailbox.DefaultMailboxes;
+import org.apache.james.modules.MailboxProbeImpl;
 import org.apache.james.modules.protocols.ImapGuiceProbe;
 import org.apache.james.modules.protocols.SmtpGuiceProbe;
+import org.apache.james.util.Port;
 import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
 import org.apache.james.utils.SMTPMessageSender;
@@ -33,14 +38,15 @@ import org.awaitility.Duration;
 import org.awaitility.core.ConditionFactory;
 import org.junit.jupiter.api.Test;
 
-import com.github.fge.lambdas.runnable.ThrowingRunnable;
+import com.github.fge.lambdas.Throwing;
+import com.google.common.io.Resources;
 import reactor.core.publisher.Mono;
 import reactor.core.scheduler.Schedulers;
 
 interface MailsShouldBeWellReceived {
 
     String JAMES_SERVER_HOST = "127.0.0.1";
-    String DOMAIN = "domain";
+    String DOMAIN = "apache.org";
     String JAMES_USER = "james-user@" + DOMAIN;
     String PASSWORD = "secret";
     ConditionFactory CALMLY_AWAIT = Awaitility
@@ -72,17 +78,25 @@ interface MailsShouldBeWellReceived {
     }
 
     @Test
-    default void twoHundredMailsShouldBeWellReceived(GuiceJamesServer server) 
throws Exception {
+    default void oneHundredMailsShouldBeWellReceived(GuiceJamesServer server) 
throws Exception {
         server.getProbe(DataProbeImpl.class).fluent()
             .addDomain(DOMAIN)
             .addUser(JAMES_USER, PASSWORD);
 
-        int messageCount = 200;
+        MailboxProbeImpl mailboxProbe = 
server.getProbe(MailboxProbeImpl.class);
+        mailboxProbe.createMailbox("#private", JAMES_USER, 
DefaultMailboxes.INBOX);
+
+        int messageCount = 100;
+
+        Port smtpPort = server.getProbe(SmtpGuiceProbe.class).getSmtpPort();
+        String message = 
Resources.toString(Resources.getResource("eml/htmlMail.eml"), 
StandardCharsets.UTF_8);
 
         try (SMTPMessageSender sender = new 
SMTPMessageSender(Domain.LOCALHOST.asString())) {
-            Mono.fromRunnable(((ThrowingRunnable) () ->
-                sender.connect(JAMES_SERVER_HOST, 
server.getProbe(SmtpGuiceProbe.class).getSmtpPort())
-                    .sendMessageWithHeaders("b...@any.com", JAMES_USER, "UUID 
" + UUID.randomUUID().toString())))
+            Mono.fromRunnable(
+                Throwing.runnable(() -> {
+                    sender.connect(JAMES_SERVER_HOST, smtpPort);
+                    sendUniqueMessage(sender, message);
+            }))
                 .repeat(messageCount - 1)
                 .subscribeOn(Schedulers.elastic())
                 .blockLast();
@@ -94,7 +108,12 @@ interface MailsShouldBeWellReceived {
             reader.connect(JAMES_SERVER_HOST, 
server.getProbe(ImapGuiceProbe.class).getImapPort())
                 .login(JAMES_USER, PASSWORD)
                 .select(IMAPMessageReader.INBOX)
-                .awaitMessageCount(CALMLY_AWAIT_FIVE_MINUTE, messageCount);
+                .awaitMessageCount(CALMLY_AWAIT, messageCount);
         }
     }
+
+    default void sendUniqueMessage(SMTPMessageSender sender, String message) 
throws IOException {
+        String uniqueMessage = message.replace("banana", "UUID " + 
UUID.randomUUID().toString());
+        sender.sendMessageWithHeaders("b...@apache.org", JAMES_USER, 
uniqueMessage);
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to