1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.message;
12
13 import org.mule.api.MuleEventContext;
14 import org.mule.api.MuleMessage;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.AbstractMuleTestCase;
17 import org.mule.tck.functional.EventCallback;
18 import org.mule.tck.functional.FunctionalTestComponent;
19 import org.mule.transport.email.transformers.PlainTextDataSource;
20
21 import javax.activation.DataHandler;
22
23 public class AttachmentsPropagationTestCase extends AbstractMuleTestCase implements EventCallback
24 {
25 public void testSanity()
26 {
27 fail("Convert this test to an XML-based configuration");
28 }
29
30
31 protected void doSetUp() throws Exception
32 {
33 super.doSetUp();
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 }
56
57 public void eventReceived(MuleEventContext context, Object component) throws Exception
58 {
59 MuleMessage message = context.getMessage();
60
61 message.addAttachment(context.getService().getName(), new DataHandler(
62 new PlainTextDataSource("text/plain", "<content>")));
63
64
65 FunctionalTestComponent fc = (FunctionalTestComponent) component;
66 fc.setReturnData(message.getAttachmentNames().toString());
67 }
68
69 public void testSingleComponentKnowsAttachments() throws Exception
70 {
71
72 MuleClient client = new MuleClient();
73 MuleMessage result = client.send("vm://Single", "", null);
74 assertNotNull(result);
75
76
77 assertEquals("[SINGLE]", result.getPayloadAsString());
78 }
79
80 public void testChainedComponentKnowsAttachments() throws Exception
81 {
82 MuleClient client = new MuleClient();
83 MuleMessage result = client.send("vm://Chained", "", null);
84 assertNotNull(result);
85
86
87
88 assertEquals("[SINGLE, CHAINED]", result.getPayloadAsString());
89 }
90
91 public void testClientReceivesAttachments() throws Exception
92 {
93
94 MuleClient client = new MuleClient();
95
96 MuleMessage result = client.send("vm://Single", "", null);
97 assertNotNull(result);
98
99
100 assertEquals("[SINGLE]", result.getPayloadAsString());
101 assertNotNull(result.getAttachment("SINGLE"));
102 assertEquals("<content>", result.getAttachment("SINGLE").getContent().toString());
103
104 result = client.send("vm://Chained", "", null);
105 assertNotNull(result);
106
107
108 assertEquals("[SINGLE, CHAINED]", result.getPayloadAsString());
109 assertNotNull(result.getAttachment("SINGLE"));
110 assertEquals("<content>", result.getAttachment("SINGLE").getContent().toString());
111 assertNotNull(result.getAttachment("CHAINED"));
112 assertEquals("<content>", result.getAttachment("CHAINED").getContent().toString());
113 }
114 }