View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.transport.email.transformers;
8   
9   import org.mule.api.transformer.TransformerException;
10  import org.mule.tck.junit4.AbstractMuleTestCase;
11  import org.mule.transport.email.GreenMailUtilities;
12  
13  import java.io.StringReader;
14  import java.util.Properties;
15  
16  import javax.mail.Message;
17  import javax.mail.MessagingException;
18  import javax.mail.Session;
19  import javax.mail.internet.InternetAddress;
20  import javax.mail.internet.MimeBodyPart;
21  import javax.mail.internet.MimeMessage;
22  import javax.mail.internet.MimeMultipart;
23  
24  import org.junit.Before;
25  import org.junit.Test;
26  
27  import static org.junit.Assert.assertEquals;
28  
29  public class EmailMessageToStringTestCase extends AbstractMuleTestCase
30  {
31      private EmailMessageToString transformer;
32      private static String TEXT = "text";
33      private static String TO = "me@me.com";
34  
35      @Before
36      public void createTransformer()
37      {
38          transformer = new EmailMessageToString();
39      }
40  
41      @Test
42      public void testSimpleStringMessage() throws MessagingException, TransformerException
43      {
44          Message msg = GreenMailUtilities.toMessage(TEXT, TO, null);
45          assertEquals(TEXT, transformer.transform(msg));
46      }
47  
48      @Test
49      public void testSimpleNonTextMessage() throws MessagingException, TransformerException
50      {
51          MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
52          message.setContent(new StringReader(TEXT), "application/octet-stream");
53          message.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
54          assertEquals("", transformer.transform(message));
55      }
56  
57      @Test
58      public void testMultipartFirstPartTextMessage() throws MessagingException, TransformerException
59      {
60          MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
61          MimeMultipart mimeMultipart = new MimeMultipart();
62          MimeBodyPart bp1 = new MimeBodyPart();
63          bp1.setContent(TEXT, "test/plain");
64          mimeMultipart.addBodyPart(bp1);
65          message.setContent(mimeMultipart);
66          message.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
67          assertEquals(TEXT, transformer.transform(message));
68      }
69  
70      @Test
71      public void testMultipartMessage2() throws MessagingException, TransformerException
72      {
73          MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
74          MimeMultipart mimeMultipart = new MimeMultipart();
75          MimeBodyPart bp1 = new MimeBodyPart();
76          bp1.setContent(new StringReader(TEXT), "binary");
77          mimeMultipart.addBodyPart(bp1);
78          message.setContent(mimeMultipart);
79          message.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
80          assertEquals("", transformer.transform(message));
81      }
82  }