1
2
3
4
5
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 }