1
2
3
4
5
6
7
8
9
10
11 package org.mule.mule;
12
13 import org.mule.impl.MuleDescriptor;
14 import org.mule.impl.MuleEvent;
15 import org.mule.impl.MuleMessage;
16 import org.mule.impl.ResponseOutputStream;
17 import org.mule.impl.endpoint.MuleEndpointURI;
18 import org.mule.tck.AbstractMuleTestCase;
19 import org.mule.tck.testmodels.fruit.Apple;
20 import org.mule.tck.testmodels.fruit.Orange;
21 import org.mule.transformers.AbstractTransformer;
22 import org.mule.umo.UMOEvent;
23 import org.mule.umo.UMOMessage;
24 import org.mule.umo.endpoint.UMOEndpoint;
25 import org.mule.umo.security.UMOCredentials;
26 import org.mule.umo.transformer.TransformerException;
27
28 import java.util.Properties;
29
30 public class MuleEventTestCase extends AbstractMuleTestCase
31 {
32
33 public void testEventInitialise() throws Exception
34 {
35 String data = "Test Data";
36 MuleDescriptor descriptor = getTestDescriptor("orange", Orange.class.getName());
37
38 MuleEvent event = (MuleEvent)getTestEvent(data, descriptor);
39
40 assertEquals("Event data should equal " + data, data, event.getMessage().getPayload());
41 assertEquals("Event data should equal " + data, data, event.getMessageAsString(null));
42 assertEquals("Event data should equal " + data, data, event.getTransformedMessage());
43 assertEquals("Event data should be a byte array 9 bytes in length", 9, event
44 .getTransformedMessageAsBytes().length);
45
46 assertEquals("Event data should be a byte array 9 bytes in length", 9,
47 event.getMessageAsBytes().length);
48 assertEquals("Event data should equal " + data, data, event.getSource());
49
50 assertEquals("MuleBeanPropertiesRule", event.getMessage().getProperty("MuleBeanPropertiesRule",
51 "MuleBeanPropertiesRule"));
52 event.getMessage().setProperty("Test", "Test1");
53
54 assertFalse(event.getMessage().getPropertyNames().isEmpty());
55 assertEquals("bla2", event.getMessage().getProperty("bla2", "bla2"));
56 assertEquals("Test1", event.getMessage().getProperty("Test"));
57 assertEquals("Test1", event.getMessage().getProperty("Test", "bla2"));
58 assertNotNull(event.getId());
59 }
60
61 public void testEventTransformer() throws Exception
62 {
63 String data = "Test Data";
64 UMOEndpoint endpoint = getTestEndpoint("Test", UMOEndpoint.ENDPOINT_TYPE_SENDER);
65 endpoint.setTransformer(new TestEventTransformer());
66 UMOEvent event = getTestEvent(data, endpoint);
67
68 assertEquals("Event data should equal " + data, data, event.getMessage().getPayload());
69 assertEquals("Event data should equal " + data, data, event.getMessageAsString(null));
70 assertEquals("Event data should equal 'Transformed Test Data'", "Transformed Test Data", event
71 .getTransformedMessage());
72 assertEquals("Event data should be a byte array 28 bytes in length", 21, event
73 .getTransformedMessageAsBytes().length);
74 }
75
76 public void testEventRewrite() throws Exception
77 {
78 String data = "Test Data";
79 UMOEndpoint endpoint = getTestEndpoint("Test", UMOEndpoint.ENDPOINT_TYPE_SENDER);
80 endpoint.setTransformer(new TestEventTransformer());
81 MuleEvent event = new MuleEvent(new MuleMessage(data), endpoint,
82 getTestSession(getTestComponent(getTestDescriptor("apple", Apple.class.getName()))), true,
83 new ResponseOutputStream(System.out));
84
85 assertNotNull(event.getId());
86 assertNotNull(event.getSession());
87 assertNotNull(event.getEndpoint());
88 assertNotNull(event.getOutputStream());
89 assertNotNull(event.getMessage());
90 assertEquals(data, event.getMessageAsString(null));
91
92 UMOEvent event2 = new MuleEvent(new MuleMessage("New Data"), event);
93 assertNotNull(event2.getId());
94 assertEquals(event.getId(), event2.getId());
95 assertNotNull(event2.getSession());
96 assertNotNull(event2.getEndpoint());
97 assertNotNull(event2.getOutputStream());
98 assertNotNull(event2.getMessage());
99 assertEquals("New Data", event2.getMessageAsString(null));
100
101 }
102
103 public void testProperties() throws Exception
104 {
105 UMOEvent prevEvent;
106 Properties props;
107 UMOMessage msg;
108 UMOEndpoint endpoint;
109 UMOEvent event;
110
111
112 prevEvent = getTestEvent("payload");
113 props = new Properties();
114 msg = new MuleMessage("payload", props);
115 endpoint = getTestEndpoint("Test", UMOEndpoint.ENDPOINT_TYPE_SENDER);
116 props = new Properties();
117 endpoint.setProperties(props);
118 event = new MuleEvent(msg, endpoint, prevEvent.getComponent(), prevEvent);
119 assertNull(event.getMessage().getProperty("prop"));
120
121
122 prevEvent.getMessage().setProperty("prop", "value0");
123 event = new MuleEvent(msg, endpoint, prevEvent.getComponent(), prevEvent);
124 assertEquals("value0", event.getMessage().getProperty("prop"));
125
126
127
128
129
130
131
132
133
134
135
136
137 props = new Properties();
138 props.put("prop", "value1");
139 msg = new MuleMessage("payload", props);
140 endpoint = getTestEndpoint("Test", UMOEndpoint.ENDPOINT_TYPE_SENDER);
141 event = new MuleEvent(msg, endpoint, prevEvent.getComponent(), prevEvent);
142 assertEquals("value1", event.getMessage().getProperty("prop"));
143
144
145 props = new Properties();
146 props.put("prop", "value1");
147 msg = new MuleMessage("payload", props);
148
149 Properties props2 = new Properties();
150 props2.put("prop", "value2");
151 endpoint.setProperties(props2);
152 event = new MuleEvent(msg, endpoint, prevEvent.getComponent(), prevEvent);
153 assertEquals("value1", event.getMessage().getProperty("prop"));
154
155 }
156
157
158
159
160 public void testNoPasswordNoNullPointerException() throws Exception
161 {
162 UMOEndpoint endpoint = getTestEndpoint("AuthTest", UMOEndpoint.ENDPOINT_TYPE_SENDER);
163
164
165
166 endpoint.setEndpointURI(new MuleEndpointURI("test://john.doe@xyz.fr"));
167 UMOEvent event = getTestEvent(new Object(), endpoint);
168 UMOCredentials credentials = event.getCredentials();
169 assertNull("Credentials must not be created for endpoints without a password.", credentials);
170 }
171
172 private class TestEventTransformer extends AbstractTransformer
173 {
174
175
176
177
178
179 public Object doTransform(Object src, String encoding) throws TransformerException
180 {
181 return "Transformed Test Data";
182 }
183 }
184
185 }