1
2
3
4
5
6
7 package org.mule.transport.jms;
8
9 import org.mule.DefaultMuleEvent;
10 import org.mule.DefaultMuleMessage;
11 import org.mule.RequestContext;
12 import org.mule.api.MuleMessage;
13 import org.mule.tck.MuleTestUtils;
14 import org.mule.tck.junit4.AbstractMuleContextTestCase;
15 import org.mule.transport.jms.transformers.ObjectToJMSMessage;
16
17 import com.mockobjects.constraint.Constraint;
18 import com.mockobjects.constraint.IsEqual;
19 import com.mockobjects.dynamic.ConstraintMatcher;
20 import com.mockobjects.dynamic.FullConstraintMatcher;
21 import com.mockobjects.dynamic.Mock;
22
23 import javax.jms.Message;
24 import javax.jms.TextMessage;
25
26 import org.apache.commons.collections.IteratorUtils;
27 import org.junit.Test;
28
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertNotNull;
31
32 public class JmsTransformerTestCase extends AbstractMuleContextTestCase
33 {
34
35 @Test
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(mockTextMessage, muleContext);
73
74
75 msg.setOutboundProperty("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 = createObject(ObjectToJMSMessage.class);
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 }