1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.email;
12
13 import org.mule.api.MuleException;
14 import org.mule.api.MuleMessage;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.DynamicPortTestCase;
17 import org.mule.transport.email.functional.AbstractEmailFunctionalTestCase;
18
19 import javax.mail.internet.MimeMessage;
20
21 import org.junit.Test;
22
23
24
25
26
27
28
29
30
31
32 public class EmailRoundTripTestCase extends DynamicPortTestCase
33 {
34 private AbstractGreenMailSupport greenMailSupport = null;
35
36 protected String getConfigResources()
37 {
38 return "email-round-trip-test.xml";
39 }
40
41
42
43
44
45 @Override
46 protected void suitePreSetUp() throws Exception
47 {
48
49 greenMailSupport = new FixedPortGreenMailSupport(getPorts().get(1));
50 greenMailSupport.startServers(getPorts());
51 greenMailSupport.createBobAndStoreEmail(greenMailSupport.getValidMessage(AbstractGreenMailSupport.ALICE_EMAIL));
52 }
53
54
55
56
57
58 @Override
59 protected void suitePostTearDown() throws Exception
60 {
61 greenMailSupport.stopServers();
62 }
63
64 @Test
65 public void testRoundTrip() throws MuleException, InterruptedException
66 {
67
68
69 MuleClient client = new MuleClient(muleContext);
70 MuleMessage message = client.request("vm://rfc822", RECEIVE_TIMEOUT);
71 assertTrue(message.getPayload() instanceof byte[]);
72
73
74 greenMailSupport.getServers().waitForIncomingEmail(AbstractEmailFunctionalTestCase.DELIVERY_DELAY_MS, 1);
75 MimeMessage[] messages = greenMailSupport.getServers().getReceivedMessages();
76 assertNotNull("did not receive any messages", messages);
77 assertEquals("did not receive 1 mail", 1, messages.length);
78 }
79
80 @Override
81 protected int getNumPortsToFind()
82 {
83
84 return 6;
85 }
86 }