1   /*
2    * $Id: JmsMessageUtilsTestCase.java 7963 2007-08-21 08:53:15Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.providers.jms;
12  
13  import org.mule.tck.AbstractMuleTestCase;
14  
15  import com.mockobjects.constraint.IsInstanceOf;
16  import com.mockobjects.dynamic.Mock;
17  
18  import javax.jms.BytesMessage;
19  import javax.jms.TextMessage;
20  
21  public class JmsMessageUtilsTestCase extends AbstractMuleTestCase
22  {
23  
24      public void testHeaders()
25      {
26          // already valid headers are returned as-is, so we can assertSame
27          assertSame("identifier", JmsMessageUtils.encodeHeader("identifier"));
28          assertSame("_identifier", JmsMessageUtils.encodeHeader("_identifier"));
29          assertSame("identifier_", JmsMessageUtils.encodeHeader("identifier_"));
30          assertSame("ident_ifier", JmsMessageUtils.encodeHeader("ident_ifier"));
31  
32          assertEquals("_identifier", JmsMessageUtils.encodeHeader("-identifier"));
33          assertEquals("identifier_", JmsMessageUtils.encodeHeader("identifier-"));
34          assertEquals("ident_ifier", JmsMessageUtils.encodeHeader("ident-ifier"));
35          assertEquals("_ident_ifier_", JmsMessageUtils.encodeHeader("-ident_ifier-"));
36          assertEquals("_ident_ifier_", JmsMessageUtils.encodeHeader("-ident-ifier-"));
37      }
38  
39      public void testTextMessageNullContent() throws Exception
40      {
41          Mock mockMessage = new Mock(TextMessage.class);
42          mockMessage.expectAndReturn("getText", null);
43  
44          TextMessage mockTextMessage = (TextMessage)mockMessage.proxy();
45  
46          byte[] result = JmsMessageUtils.toByteArray(mockTextMessage, JmsConstants.JMS_SPECIFICATION_102B);
47          assertNotNull(result);
48          assertEquals("Should return an empty byte array.", 0, result.length);
49  
50          mockMessage.verify();
51      }
52  
53      public void testByteMessageNullContent() throws Exception
54      {
55          // test for JMS 1.0.2-compliant code path
56          Mock mockMessage = new Mock(BytesMessage.class);
57          mockMessage.expect("reset");
58          mockMessage.expectAndReturn("readBytes", new IsInstanceOf(byte[].class), -1);
59          BytesMessage mockBytesMessage = (BytesMessage)mockMessage.proxy();
60  
61          byte[] result = JmsMessageUtils.toByteArray(mockBytesMessage, JmsConstants.JMS_SPECIFICATION_102B);
62          assertNotNull(result);
63          assertEquals("Should return an empty byte array.", 0, result.length);
64          mockMessage.verify();
65  
66          // test for JMS 1.1-compliant code path
67          mockMessage = new Mock(BytesMessage.class);
68          mockMessage.expect("reset");
69          mockMessage.expectAndReturn("getBodyLength", new Long(0));
70          mockBytesMessage = (BytesMessage)mockMessage.proxy();
71  
72          result = JmsMessageUtils.toByteArray(mockBytesMessage, JmsConstants.JMS_SPECIFICATION_11);
73          assertNotNull(result);
74          assertEquals("Should return an empty byte array.", 0, result.length);
75          mockMessage.verify();
76      }
77  
78  }