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]
