MAILET-154 Adding more capabilities to MimeMessageBuilder

Also correct setText method


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

Branch: refs/heads/master
Commit: f8506f768406489927d23318d0b136d3dbfd0d03
Parents: 49b9951
Author: benwa <btell...@linagora.com>
Authored: Fri Apr 7 09:50:42 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Mon Apr 10 17:22:16 2017 +0700

----------------------------------------------------------------------
 .../org/apache/mailet/base/test/MailUtil.java   |  2 +-
 .../mailet/base/test/MimeMessageBuilder.java    | 37 +++++++++++++++-----
 .../mailets/ICALToJsonAttributeTest.java        |  4 +--
 .../transport/mailets/StripAttachmentTest.java  |  4 +--
 4 files changed, 32 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f8506f76/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
----------------------------------------------------------------------
diff --git 
a/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java 
b/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
index 4758d77..17f26f6 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
@@ -72,7 +72,7 @@ public class MailUtil {
     private static MimeMessage createMimeMessage(String headerName, String 
headerValue, String subject) throws MessagingException {
         MimeMessageBuilder mimeMessageBuilder = 
MimeMessageBuilder.mimeMessageBuilder()
             .addToRecipient(RECIPIENT)
-            .setFrom(SENDER)
+            .addFrom(SENDER)
             .setSubject(subject);
         if (headerName != null) {
             mimeMessageBuilder.addHeader(headerName, headerValue);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f8506f76/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
----------------------------------------------------------------------
diff --git 
a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java 
b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
index c75136d..666803a 100644
--- 
a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
+++ 
b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
@@ -209,8 +209,8 @@ public class MimeMessageBuilder {
     private Optional<String> text = Optional.absent();
     private Optional<String> subject = Optional.absent();
     private Optional<InternetAddress> sender = Optional.absent();
-    private Optional<InternetAddress> from = Optional.absent();
     private Optional<MimeMultipart> content = Optional.absent();
+    private ImmutableList.Builder<InternetAddress> from = 
ImmutableList.builder();
     private ImmutableList.Builder<InternetAddress> cc = 
ImmutableList.builder();
     private ImmutableList.Builder<InternetAddress> to = 
ImmutableList.builder();
     private ImmutableList.Builder<InternetAddress> bcc = 
ImmutableList.builder();
@@ -236,8 +236,13 @@ public class MimeMessageBuilder {
         return this;
     }
 
-    public MimeMessageBuilder setFrom(String from) throws AddressException {
-        this.from = Optional.of(new InternetAddress(from));
+    public MimeMessageBuilder addFrom(String from) throws AddressException {
+        this.from.add(new InternetAddress(from));
+        return this;
+    }
+
+    public MimeMessageBuilder addFrom(InternetAddress... from) throws 
AddressException {
+        this.from.addAll(Arrays.asList(from));
         return this;
     }
 
@@ -272,6 +277,21 @@ public class MimeMessageBuilder {
         return this;
     }
 
+    public MimeMessageBuilder addToRecipient(InternetAddress... tos) throws 
AddressException {
+        this.to.addAll(Arrays.asList(tos));
+        return this;
+    }
+
+    public MimeMessageBuilder addCcRecipient(InternetAddress... ccs) throws 
AddressException {
+        this.cc.addAll(Arrays.asList(ccs));
+        return this;
+    }
+
+    public MimeMessageBuilder addBccRecipient(InternetAddress... bccs) throws 
AddressException {
+        this.bcc.addAll(Arrays.asList(bccs));
+        return this;
+    }
+
     public MimeMessageBuilder setContent(MimeMultipart mimeMultipart) {
         this.content = Optional.of(mimeMultipart);
         return this;
@@ -305,9 +325,7 @@ public class MimeMessageBuilder {
         Preconditions.checkState(!(text.isPresent() && content.isPresent()), 
"Can not get at the same time a text and a content");
         MimeMessage mimeMessage = new MimeMessage(Session.getInstance(new 
Properties()));
         if (text.isPresent()) {
-            BodyPart bodyPart = new MimeBodyPart();
-            bodyPart.setText(text.get());
-            mimeMessage.setContent(bodyPart, "text/plain");
+            mimeMessage.setContent(text.get(), "text/plain");
         }
         if (content.isPresent()) {
             mimeMessage.setContent(content.get());
@@ -315,12 +333,13 @@ public class MimeMessageBuilder {
         if (sender.isPresent()) {
             mimeMessage.setSender(sender.get());
         }
-        if (from.isPresent()) {
-            mimeMessage.setFrom(from.get());
-        }
         if (subject.isPresent()) {
             mimeMessage.setSubject(subject.get());
         }
+        ImmutableList<InternetAddress> fromAddresses = from.build();
+        if (!fromAddresses.isEmpty()) {
+            mimeMessage.addFrom(fromAddresses.toArray(new 
InternetAddress[fromAddresses.size()]));
+        }
         List<InternetAddress> toAddresses = to.build();
         if (!toAddresses.isEmpty()) {
             mimeMessage.setRecipients(Message.RecipientType.TO, 
toAddresses.toArray(new InternetAddress[toAddresses.size()]));

http://git-wip-us.apache.org/repos/asf/james-project/blob/f8506f76/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
----------------------------------------------------------------------
diff --git 
a/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
 
b/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
index 76147ee..5538b15 100644
--- 
a/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
+++ 
b/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
@@ -444,7 +444,7 @@ public class ICALToJsonAttributeTest {
             .sender(SENDER)
             .recipient(recipient)
             .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
-                .setFrom(from)
+                .addFrom(from)
                 .build())
             .attribute(ICALToJsonAttribute.DEFAULT_SOURCE_ATTRIBUTE_NAME, 
icals)
             .attribute(ICALToJsonAttribute.DEFAULT_RAW_SOURCE_ATTRIBUTE_NAME, 
rawIcals)
@@ -515,7 +515,7 @@ public class ICALToJsonAttributeTest {
         Mail mail = FakeMail.builder()
             .recipient(recipient)
             .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
-                .setFrom(from)
+                .addFrom(from)
                 .build())
             .attribute(ICALToJsonAttribute.DEFAULT_SOURCE_ATTRIBUTE_NAME, 
icals)
             .attribute(ICALToJsonAttribute.DEFAULT_RAW_SOURCE_ATTRIBUTE_NAME, 
rawIcals)

http://git-wip-us.apache.org/repos/asf/james-project/blob/f8506f76/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
----------------------------------------------------------------------
diff --git 
a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
 
b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
index 5995f98..271e45e 100644
--- 
a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
+++ 
b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
@@ -53,7 +53,6 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.junit.rules.TemporaryFolder;
 
-import com.google.common.base.Charsets;
 import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
 import com.google.common.collect.FluentIterable;
@@ -125,8 +124,7 @@ public class StripAttachmentTest {
         mailet.service(mail);
 
         assertThat(mail).isEqualToComparingFieldByField(expectedMail);
-        BodyPart content = (BodyPart) mail.getMessage().getContent();
-        assertThat(IOUtils.toString(content.getInputStream(), 
Charsets.UTF_8)).isEqualTo("simple text");
+        assertThat(mail.getMessage().getContent()).isEqualTo("simple text");
     }
     
     @Test


---------------------------------------------------------------------
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