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 2022/11/03 08:08:31 UTC
[james-project] 02/05: JAMES-3843 Support nullSender in mockSMTP
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 5fa6a93e6aaa71b51a7cafab4524f1075ede3e43
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Nov 1 22:50:59 2022 +0700
JAMES-3843 Support nullSender in mockSMTP
---
server/mailet/mock-smtp-server/pom.xml | 2 +-
.../james/mock/smtp/server/MockMessageHandler.java | 3 +++
.../apache/james/mock/smtp/server/model/Mail.java | 15 +++++++++++
.../mock/smtp/server/ConfigurationClientTest.java | 31 ++++++++++++++++++++++
4 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/server/mailet/mock-smtp-server/pom.xml b/server/mailet/mock-smtp-server/pom.xml
index 707f7ff6e9..c9d3c10949 100644
--- a/server/mailet/mock-smtp-server/pom.xml
+++ b/server/mailet/mock-smtp-server/pom.xml
@@ -129,7 +129,7 @@
<to>
<image>linagora/mock-smtp-server</image>
<tags>
- <tag>0.5</tag>
+ <tag>0.6</tag>
</tags>
</to>
<container>
diff --git a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockMessageHandler.java b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockMessageHandler.java
index 1d50fc6bd3..1f975f15c9 100644
--- a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockMessageHandler.java
+++ b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockMessageHandler.java
@@ -187,6 +187,9 @@ public class MockMessageHandler implements MessageHandler {
}
private MailAddress parse(String mailAddress) {
+ if (mailAddress.isEmpty()) {
+ return MailAddress.nullSender();
+ }
try {
return new MailAddress(mailAddress);
} catch (AddressException e) {
diff --git a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Mail.java b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Mail.java
index c8e683f83c..9008a76b5b 100644
--- a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Mail.java
+++ b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Mail.java
@@ -26,6 +26,8 @@ import java.util.Objects;
import java.util.Set;
import java.util.stream.Stream;
+import javax.mail.internet.AddressException;
+
import org.apache.james.core.MailAddress;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
@@ -231,6 +233,19 @@ public class Mail {
return this;
}
+ public Builder from(String from) {
+ if (from.equals("<>")) {
+ this.from = MailAddress.nullSender();
+ } else {
+ try {
+ this.from = new MailAddress(from);
+ } catch (AddressException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return this;
+ }
+
public Builder addRecipientMailAddress(MailAddress mailAddress) {
this.recipients.add(Recipient.of(mailAddress));
return this;
diff --git a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
index c85a80d6c7..3586940046 100644
--- a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
+++ b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
@@ -22,7 +22,9 @@ package org.apache.james.mock.smtp.server;
import static org.apache.james.mock.smtp.server.Fixture.BEHAVIOR_LIST;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.core.MailAddress;
import org.apache.james.mock.smtp.server.Fixture.MailsFixutre;
+import org.apache.james.mock.smtp.server.model.Mail;
import org.apache.james.mock.smtp.server.model.SMTPExtension;
import org.apache.james.mock.smtp.server.model.SMTPExtensions;
import org.junit.jupiter.api.AfterEach;
@@ -133,6 +135,35 @@ class ConfigurationClientTest {
.containsExactly(MailsFixutre.MAIL_1, MailsFixutre.MAIL_2);
}
+ @Test
+ void listMailsShouldReturnMailWithNullSender() throws Exception {
+ final Mail mail = new Mail(
+ Mail.Envelope.builder()
+ .from(MailAddress.nullSender())
+ .addRecipientMailAddress(new MailAddress(Fixture.ALICE))
+ .addRecipient(Mail.Recipient.builder()
+ .address(new MailAddress(Fixture.JACK))
+ .addParameter(Mail.Parameter.builder()
+ .name("param1")
+ .value("value1")
+ .build())
+ .addParameter(Mail.Parameter.builder()
+ .name("param2")
+ .value("value2")
+ .build())
+ .build())
+ .addMailParameter(Mail.Parameter.builder()
+ .name("param3")
+ .value("value3")
+ .build())
+ .build(),
+ "bob to alice and jack");
+ mailRepository.store(mail);
+
+ assertThat(testee.listMails())
+ .containsExactly(mail);
+ }
+
@Test
void shouldReturnVersion() {
mailRepository.store(MailsFixutre.MAIL_1);
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org