1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.jms;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.DefaultMuleEvent;
15 import org.mule.RequestContext;
16 import org.mule.api.MuleMessage;
17 import org.mule.tck.AbstractMuleTestCase;
18 import org.mule.tck.MuleTestUtils;
19 import org.mule.transport.jms.JmsMessageAdapter;
20 import org.mule.transport.jms.transformers.ObjectToJMSMessage;
21
22 import com.mockobjects.constraint.Constraint;
23 import com.mockobjects.constraint.IsEqual;
24 import com.mockobjects.dynamic.ConstraintMatcher;
25 import com.mockobjects.dynamic.FullConstraintMatcher;
26 import com.mockobjects.dynamic.Mock;
27
28 import javax.jms.Message;
29 import javax.jms.TextMessage;
30
31 import org.apache.commons.collections.IteratorUtils;
32
33 public class JmsTransformerTestCase extends AbstractMuleTestCase
34 {
35
36 public void testCustomJMSProperty() throws Exception
37 {
38
39
40
41
42
43
44
45 Mock mockMessage = new Mock(TextMessage.class);
46 mockMessage.expectAndReturn("getJMSCorrelationID", null);
47 mockMessage.expectAndReturn("getJMSMessageID", "1234567890");
48 mockMessage.expectAndReturn("getJMSDeliveryMode", new Integer(1));
49 mockMessage.expectAndReturn("getJMSDestination", null);
50 mockMessage.expectAndReturn("getJMSPriority", new Integer(4));
51 mockMessage.expectAndReturn("getJMSRedelivered", Boolean.FALSE);
52 mockMessage.expectAndReturn("getJMSReplyTo", null);
53 mockMessage.expectAndReturn("getJMSExpiration", new Long(0));
54 mockMessage.expectAndReturn("getJMSTimestamp", new Long(0));
55 mockMessage.expectAndReturn("getJMSType", null);
56
57 mockMessage.expect("toString");
58 mockMessage.expect("toString");
59
60 mockMessage.expect("clearProperties");
61
62 mockMessage.expectAndReturn("getPropertyNames",
63 IteratorUtils.asEnumeration(IteratorUtils.emptyIterator()));
64
65 mockMessage.expectAndReturn("getObjectProperty", "JMS_CUSTOM_PROPERTY", "customValue");
66
67 ConstraintMatcher setPropertyMatcher = new FullConstraintMatcher(new Constraint[]{
68 new IsEqual("JMS_CUSTOM_PROPERTY"), new IsEqual("customValue")});
69 mockMessage.expect("setObjectProperty", setPropertyMatcher);
70
71 Message mockTextMessage = (Message)mockMessage.proxy();
72 MuleMessage msg = new DefaultMuleMessage(new JmsMessageAdapter(mockTextMessage));
73
74
75 msg.setProperty("JMS_CUSTOM_PROPERTY", "customValue");
76
77
78
79
80 assertNotNull("The test hasn't been configured properly, no muleContext available", muleContext);
81 RequestContext.setEvent(new DefaultMuleEvent(msg, MuleTestUtils.getTestEvent("previous", muleContext)));
82
83
84
85
86 ObjectToJMSMessage transformer = new ObjectToJMSMessage();
87 Message transformed = (Message)transformer.transform(msg.getPayload());
88
89
90
91 assertEquals("customValue", transformed.getObjectProperty("JMS_CUSTOM_PROPERTY"));
92
93
94
95 }
96
97 }