View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.transport.jms;
8   
9   import org.mule.api.MuleMessage;
10  import org.mule.api.transport.MuleMessageFactory;
11  import org.mule.transport.AbstractMuleMessageFactoryTestCase;
12  
13  import com.mockobjects.dynamic.C;
14  import com.mockobjects.dynamic.Mock;
15  
16  import javax.jms.TextMessage;
17  
18  import org.apache.commons.collections.IteratorUtils;
19  
20  import static org.junit.Assert.assertEquals;
21  import static org.junit.Assert.assertNotNull;
22  
23  public class JmsMuleMessageFactoryTestCase extends AbstractMuleMessageFactoryTestCase
24  {
25      private static final String MESSAGE_TEXT = "Test JMS Message";
26  
27      @Override
28      protected MuleMessageFactory doCreateMuleMessageFactory()
29      {
30          return new JmsMuleMessageFactory(muleContext);
31      }
32  
33      @Override
34      protected Object getValidTransportMessage() throws Exception
35      {
36          Mock message = new Mock(TextMessage.class);
37          message.expectAndReturn("getText", MESSAGE_TEXT);
38          message.expectAndReturn("getJMSCorrelationID", null);
39          message.expectAndReturn("getJMSDeliveryMode", Integer.valueOf(1));
40          message.expectAndReturn("getJMSDestination", null);
41          message.expectAndReturn("getJMSExpiration", Long.valueOf(0));
42          message.expectAndReturn("getJMSMessageID", "1234567890");
43          message.expectAndReturn("getJMSPriority", Integer.valueOf(4));
44          message.expectAndReturn("getJMSRedelivered", Boolean.FALSE);
45          message.expectAndReturn("getJMSReplyTo", null);
46          message.expectAndReturn("getJMSTimestamp", Long.valueOf(0));
47          message.expectAndReturn("getJMSType", null);
48          message.expectAndReturn("getPropertyNames", IteratorUtils.asEnumeration(
49              IteratorUtils.arrayIterator(new Object[] { "foo" })));
50          message.expectAndReturn("getObjectProperty", C.eq("foo"), "bar");
51          message.expectAndReturn("equals", C.eq(MESSAGE_TEXT), true);
52          
53          return message.proxy();
54      }
55  
56      @Override
57      protected Object getUnsupportedTransportMessage()
58      {
59          return "this is an invalid transport message for JmsMuleMessageFactory";
60      }
61  
62      @Override
63      public void testValidPayload() throws Exception
64      {
65          MuleMessageFactory factory = createMuleMessageFactory();
66          
67          Object payload = getValidTransportMessage();
68          MuleMessage message = factory.create(payload, encoding);
69          assertNotNull(message);
70          assertEquals(payload, message.getPayload());
71          // message factory populates the inbound scope
72          assertEquals("bar", message.getInboundProperty("foo"));
73      }
74  }