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