Repository: james-project
Updated Branches:
  refs/heads/master 4231ebfa7 -> 485406252


JAMES-2557 MailetContext should take state into account


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/df433578
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/df433578
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/df433578

Branch: refs/heads/master
Commit: df43357843d29f23f7accd61a6686ab32b65cc01
Parents: f39a2c1
Author: Benoit Tellier <[email protected]>
Authored: Fri Oct 19 16:00:54 2018 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Tue Oct 30 09:39:04 2018 +0700

----------------------------------------------------------------------
 .../mailet/base/test/FakeMailContext.java       |  2 +-
 .../impl/JamesMailetContext.java                |  3 +-
 .../impl/JamesMailetContextTest.java            | 46 ++++++++++++++++++++
 3 files changed, 49 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/df433578/mailet/test/src/main/java/org/apache/mailet/base/test/FakeMailContext.java
----------------------------------------------------------------------
diff --git 
a/mailet/test/src/main/java/org/apache/mailet/base/test/FakeMailContext.java 
b/mailet/test/src/main/java/org/apache/mailet/base/test/FakeMailContext.java
index eff41c9..8dbf7f9 100644
--- a/mailet/test/src/main/java/org/apache/mailet/base/test/FakeMailContext.java
+++ b/mailet/test/src/main/java/org/apache/mailet/base/test/FakeMailContext.java
@@ -497,7 +497,7 @@ public class FakeMailContext implements MailetContext {
 
     @Override
     public void sendMail(Mail mail) throws MessagingException {
-        sendMail(mail, Mail.DEFAULT);
+        sendMail(mail, 
Optional.ofNullable(mail.getState()).orElse(Mail.DEFAULT));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/df433578/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index c309370..0f4d0cc 100644
--- 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 
@@ -396,7 +397,7 @@ public class JamesMailetContext implements MailetContext, 
Configurable {
 
     @Override
     public void sendMail(Mail mail) throws MessagingException {
-        sendMail(mail, Mail.DEFAULT);
+        sendMail(mail, 
Optional.ofNullable(mail.getState()).orElse(Mail.DEFAULT));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/df433578/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
 
b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
index f4bd07d..676a756 100644
--- 
a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
+++ 
b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
@@ -41,6 +41,8 @@ import org.apache.james.server.core.MailImpl;
 import org.apache.james.user.memory.MemoryUsersRepository;
 import org.apache.james.util.MimeMessageUtil;
 import org.apache.mailet.Mail;
+import org.apache.mailet.base.MailAddressFixture;
+import org.apache.mailet.base.test.FakeMail;
 import org.assertj.core.api.JUnitSoftAssertions;
 import org.junit.Before;
 import org.junit.Rule;
@@ -317,4 +319,48 @@ public class JamesMailetContextTest {
 
         
assertThat(mailArgumentCaptor.getValue().getState()).isEqualTo(otherState);
     }
+
+    @Test
+    public void sendMailForMailShouldEnqueueEmailWithOtherStateWhenSpecified() 
throws Exception {
+        MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+            .addFrom(mailAddress.asString())
+            .addToRecipient(mailAddress.asString())
+            .setText("Simple text")
+            .build();
+
+        String otherState = "other";
+        testee.sendMail(FakeMail.builder()
+            .sender(MailAddressFixture.SENDER)
+            .recipient(MailAddressFixture.RECIPIENT1)
+            .mimeMessage(message)
+            .state(otherState)
+            .build());
+
+        ArgumentCaptor<Mail> mailArgumentCaptor = 
ArgumentCaptor.forClass(Mail.class);
+        verify(spoolMailQueue).enQueue(mailArgumentCaptor.capture());
+        verifyNoMoreInteractions(spoolMailQueue);
+
+        
assertThat(mailArgumentCaptor.getValue().getState()).isEqualTo(otherState);
+    }
+
+    @Test
+    public void sendMailForMailShouldEnqueueEmailWithDefaults() throws 
Exception {
+        MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+            .addFrom(mailAddress.asString())
+            .addToRecipient(mailAddress.asString())
+            .setText("Simple text")
+            .build();
+
+        testee.sendMail(FakeMail.builder()
+            .sender(MailAddressFixture.SENDER)
+            .recipient(MailAddressFixture.RECIPIENT1)
+            .mimeMessage(message)
+            .build());
+
+        ArgumentCaptor<Mail> mailArgumentCaptor = 
ArgumentCaptor.forClass(Mail.class);
+        verify(spoolMailQueue).enQueue(mailArgumentCaptor.capture());
+        verifyNoMoreInteractions(spoolMailQueue);
+
+        
assertThat(mailArgumentCaptor.getValue().getState()).isEqualTo(Mail.DEFAULT);
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to