[jboss-cvs] JBoss Messaging SVN: r4505 - in trunk: tests/src/org/jboss/messaging/tests/unit/jms/client and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jun 17 10:50:57 EDT 2008


Author: jmesnil
Date: 2008-06-17 10:50:57 -0400 (Tue, 17 Jun 2008)
New Revision: 4505

Added:
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMapMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossObjectMessageTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossTextMessageTest.java
Modified:
   trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java
Log:
added unit tests for JBossXXXMessage classes

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java	2008-06-17 14:47:59 UTC (rev 4504)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java	2008-06-17 14:50:57 UTC (rev 4505)
@@ -69,11 +69,11 @@
 
    private static final SimpleString REPLYTO_HEADER_NAME = new SimpleString("JMSReplyTo");
    
-   private static final SimpleString CORRELATIONID_HEADER_NAME = new SimpleString("JMSCorrelationID");
+   public static final SimpleString CORRELATIONID_HEADER_NAME = new SimpleString("JMSCorrelationID");
 
-   private static final SimpleString JBM_MESSAGE_ID = new SimpleString("JMSMessageID");
+   public static final SimpleString JBM_MESSAGE_ID = new SimpleString("JMSMessageID");
    
-   private static final SimpleString TYPE_HEADER_NAME = new SimpleString("JMSType");
+   public static final SimpleString TYPE_HEADER_NAME = new SimpleString("JMSType");
    
    private static final SimpleString JMS = new SimpleString("JMS");
    
@@ -81,7 +81,7 @@
    
    private static final SimpleString JMS_ = new SimpleString("JMS_");
    
-   private static final String JMSXDELIVERYCOUNT = "JMSXDeliveryCount";
+   public static final String JMSXDELIVERYCOUNT = "JMSXDeliveryCount";
    
    //Used when bridging a message
    public static final String JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST = "JBM_BRIDGE_MSG_ID_LIST";
@@ -424,16 +424,22 @@
 
    public void setJMSRedelivered(final boolean redelivered) throws JMSException
    {      
-      if (message.getDeliveryCount() > 1)
+      if (!redelivered)
       {
-         //do nothing
+         message.setDeliveryCount(1);
       }
-      else
-      {
-         message.setDeliveryCount(2);
+      else {
+         if (message.getDeliveryCount() > 1)
+         {
+            //do nothing
+         }
+         else
+         {
+            message.setDeliveryCount(2);
+         }
       }
    }
-  
+   
    public void setJMSType(final String type) throws JMSException
    {
       if (type != null)
@@ -475,9 +481,11 @@
 
    public void setJMSPriority(final int priority) throws JMSException
    {
+      checkPriority(priority);
+      
       message.setPriority((byte)priority);
    }
-      
+
    public void clearProperties() throws JMSException
    {     
       List<SimpleString> toRemove = new ArrayList<SimpleString>();
@@ -984,5 +992,14 @@
       return true;
    }
    
+   
+   private void checkPriority(int priority) throws JMSException
+   {
+      if (priority < 0 || priority > 9)
+      {
+         throw new JMSException(priority + " is not valid: priority must be between 0 and 9");
+      }
+   }
+
    // Inner classes -------------------------------------------------
 }

Added: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMapMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMapMessageTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMapMessageTest.java	2008-06-17 14:50:57 UTC (rev 4505)
@@ -0,0 +1,728 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.tests.unit.jms.client;
+
+import static org.jboss.messaging.tests.unit.core.remoting.impl.CodecAssert.assertEqualsByteArrays;
+import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
+import static org.jboss.messaging.tests.util.RandomUtil.randomByte;
+import static org.jboss.messaging.tests.util.RandomUtil.randomBytes;
+import static org.jboss.messaging.tests.util.RandomUtil.randomChar;
+import static org.jboss.messaging.tests.util.RandomUtil.randomDouble;
+import static org.jboss.messaging.tests.util.RandomUtil.randomFloat;
+import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
+import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
+import static org.jboss.messaging.tests.util.RandomUtil.randomShort;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import javax.jms.MessageFormatException;
+
+import junit.framework.TestCase;
+
+import org.jboss.messaging.jms.client.JBossMapMessage;
+import org.jboss.messaging.jms.client.JBossMessage;
+import org.jboss.messaging.tests.unit.core.remoting.impl.CodecAssert;
+import org.jboss.messaging.tests.util.RandomUtil;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ * 
+ */
+public class JBossMapMessageTest extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private String itemName;
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+
+      itemName = randomString();
+   }
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testClearBody() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setBoolean(itemName, true);
+
+      assertTrue(message.itemExists(itemName));
+
+      message.clearBody();
+
+      assertFalse(message.itemExists(itemName));
+   }
+
+   public void testGetType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      assertEquals(JBossMapMessage.TYPE, message.getType());
+   }
+   
+   public void testCheckItemNameIsNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      try
+      {
+         message.setBoolean(null, true);
+         fail("item name can not be null");         
+      } catch (IllegalArgumentException e)
+      {
+      }
+      
+   }
+
+   public void testCheckItemNameIsEmpty() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      try
+      {
+         message.setBoolean("", true);
+         fail("item name can not be empty");         
+      } catch (IllegalArgumentException e)
+      {
+      }
+      
+   }
+   
+   public void testGetBooleanFromBoolean() throws Exception
+   {
+      boolean value = true;
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setBoolean(itemName, value);
+
+      assertEquals(value, message.getBoolean(itemName));
+   }
+
+   public void testGetBooleanFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      assertEquals(false, message.getBoolean(itemName));
+   }
+
+   public void testGetBooleanFromString() throws Exception
+   {
+      boolean value = true;
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setString(itemName, Boolean.toString(value));
+
+      assertEquals(value, message.getBoolean(itemName));
+   }
+
+   public void testGetBooleanFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, randomFloat());
+
+      try
+      {
+         message.getBoolean(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testGetByteFromByte() throws Exception
+   {
+      byte value = randomByte();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setByte(itemName, value);
+
+      assertEquals(value, message.getByte(itemName));
+   }
+
+   public void testGetByteFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+
+      try
+      {
+         message.getByte(itemName);
+         fail("NumberFormatException");
+      } catch (NumberFormatException e)
+      {
+      }
+   }
+
+   public void testGetByteFromString() throws Exception
+   {
+      byte value = randomByte();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setString(itemName, Byte.toString(value));
+
+      assertEquals(value, message.getByte(itemName));
+   }
+
+   public void testGetByteFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, randomFloat());
+
+      try
+      {
+         message.getByte(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testGetShortFromByte() throws Exception
+   {
+      byte value = randomByte();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setByte(itemName, value);
+
+      assertEquals(value, message.getShort(itemName));
+   }
+
+   public void testGetShortFromShort() throws Exception
+   {
+      short value = randomShort();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setShort(itemName, value);
+
+      assertEquals(value, message.getShort(itemName));
+   }
+
+   public void testGetShortFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+
+      try
+      {
+         message.getShort(itemName);
+         fail("NumberFormatException");
+      } catch (NumberFormatException e)
+      {
+      }
+   }
+
+   public void testGetShortFromString() throws Exception
+   {
+      short value = randomShort();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setString(itemName, Short.toString(value));
+
+      assertEquals(value, message.getShort(itemName));
+   }
+
+   public void testGetShortFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, randomFloat());
+
+      try
+      {
+         message.getShort(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testGetIntFromByte() throws Exception
+   {
+      byte value = randomByte();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setByte(itemName, value);
+
+      assertEquals(value, message.getInt(itemName));
+   }
+
+   public void testGetIntFromShort() throws Exception
+   {
+      short value = randomShort();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setShort(itemName, value);
+
+      assertEquals(value, message.getInt(itemName));
+   }
+
+   public void testGetIntFromInt() throws Exception
+   {
+      int value = randomInt();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setInt(itemName, value);
+
+      assertEquals(value, message.getInt(itemName));
+   }
+
+   public void testGetIntFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+
+      try
+      {
+         message.getInt(itemName);
+         fail("NumberFormatException");
+      } catch (NumberFormatException e)
+      {
+      }
+   }
+
+   public void testGetIntFromString() throws Exception
+   {
+      int value = randomInt();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setString(itemName, Integer.toString(value));
+
+      assertEquals(value, message.getInt(itemName));
+   }
+
+   public void testGetIntFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, randomFloat());
+
+      try
+      {
+         message.getInt(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testGetCharFromChar() throws Exception
+   {
+      char value = randomChar();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setChar(itemName, value);
+
+      assertEquals(value, message.getChar(itemName));
+   }
+
+   public void testGetCharFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+
+      try
+      {
+         message.getChar(itemName);
+         fail("NullPointerException");
+      } catch (NullPointerException e)
+      {
+      }
+   }
+
+   public void testGetCharFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, randomFloat());
+
+      try
+      {
+         message.getChar(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testGetLongFromByte() throws Exception
+   {
+      byte value = randomByte();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setByte(itemName, value);
+
+      assertEquals(value, message.getLong(itemName));
+   }
+
+   public void testGetLongFromShort() throws Exception
+   {
+      short value = randomShort();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setShort(itemName, value);
+
+      assertEquals(value, message.getLong(itemName));
+   }
+
+   public void testGetLongFromInt() throws Exception
+   {
+      int value = randomInt();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setInt(itemName, value);
+
+      assertEquals(value, message.getLong(itemName));
+   }
+
+   public void testGetLongFromLong() throws Exception
+   {
+      long value = randomLong();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setLong(itemName, value);
+
+      assertEquals(value, message.getLong(itemName));
+   }
+
+   public void testGetLongFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+
+      try
+      {
+         message.getLong(itemName);
+         fail("NumberFormatException");
+      } catch (NumberFormatException e)
+      {
+      }
+   }
+
+   public void testGetLongFromString() throws Exception
+   {
+      long value = randomLong();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setString(itemName, Long.toString(value));
+
+      assertEquals(value, message.getLong(itemName));
+   }
+
+   public void testGetLongFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, randomFloat());
+
+      try
+      {
+         message.getLong(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+   
+   public void testGetFloatFromFloat() throws Exception
+   {
+      float value = randomFloat();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, value);
+
+      assertEquals(value, message.getFloat(itemName));
+   }
+
+   public void testGetFloatFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+
+      try
+      {
+         message.getFloat(itemName);
+         fail("NullPointerException");
+      } catch (NullPointerException e)
+      {
+      }
+   }
+
+   public void testGetFloatFromString() throws Exception
+   {
+      float value = randomFloat();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setString(itemName, Float.toString(value));
+
+      assertEquals(value, message.getFloat(itemName));
+   }
+
+   public void testGetFloatFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setChar(itemName, randomChar());
+
+      try
+      {
+         message.getFloat(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testGetDoubleFromFloat() throws Exception
+   {
+      float value = randomFloat();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, value);
+
+      assertEquals(Float.valueOf(value).doubleValue(), message.getDouble(itemName));
+   }
+   
+   public void testGetDoubleFromDouble() throws Exception
+   {
+      double value = randomDouble();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setDouble(itemName, value);
+
+      assertEquals(value, message.getDouble(itemName));
+   }
+
+   public void testGetDoubleFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+
+      try
+      {
+         message.getDouble(itemName);
+         fail("NullPointerException");
+      } catch (NullPointerException e)
+      {
+      }
+   }
+
+   public void testGetDoubleFromString() throws Exception
+   {
+      double value = randomDouble();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setString(itemName, Double.toString(value));
+
+      assertEquals(value, message.getDouble(itemName));
+   }
+
+   public void testGetDoubleFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setChar(itemName, randomChar());
+
+      try
+      {
+         message.getDouble(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+   
+   public void testGetStringFromBoolean() throws Exception
+   {
+      boolean value = randomBoolean();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setBoolean(itemName, value);
+
+      assertEquals(Boolean.toString(value), message.getString(itemName));
+   }
+   
+   public void testGetStringFromByte() throws Exception
+   {
+      byte value = randomByte();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setByte(itemName, value);
+
+      assertEquals(Byte.toString(value), message.getString(itemName));
+   }
+   
+   public void testGetStringFromChar() throws Exception
+   {
+      char value = randomChar();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setChar(itemName, value);
+
+      assertEquals(Character.toString(value), message.getString(itemName));
+   }
+
+   public void testGetStringFromShort() throws Exception
+   {
+      short value = randomShort();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setShort(itemName, value);
+
+      assertEquals(Short.toString(value), message.getString(itemName));
+   }
+
+   public void testGetStringFromInt() throws Exception
+   {
+      int value = randomInt();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setInt(itemName, value);
+
+      assertEquals(Integer.toString(value), message.getString(itemName));
+   }
+
+   public void testGetStringFromLong() throws Exception
+   {
+      long value = randomLong();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setLong(itemName, value);
+
+      assertEquals(Long.toString(value), message.getString(itemName));
+   }
+
+   public void testGetStringFromFloat() throws Exception
+   {
+      float value = randomFloat();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setFloat(itemName, value);
+
+      assertEquals(Float.toString(value), message.getString(itemName));
+   }
+   
+   public void testGetStringFromDouble() throws Exception
+   {
+      double value = randomByte();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setDouble(itemName, value);
+
+      assertEquals(Double.toString(value), message.getString(itemName));
+   }
+   
+   public void testGetStringFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+
+      assertNull(message.getString(itemName));
+   }
+
+   public void testGetStringFromString() throws Exception
+   {
+      String value = randomString();
+
+      JBossMapMessage message = new JBossMapMessage();
+      message.setString(itemName, value);
+
+      assertEquals(value, message.getString(itemName));
+   }
+   
+   public void testGetBytesFromBytes() throws Exception
+   {
+      byte[] value = randomBytes();
+      JBossMapMessage message = new JBossMapMessage();
+      message.setBytes(itemName, value);
+
+      assertEqualsByteArrays(value, message.getBytes(itemName));
+   }
+
+   public void testGetBytesFromNull() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      
+      assertNull(message.getBytes(itemName));
+   }
+   
+   public void testGetBytesFromInvalidType() throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setChar(itemName, randomChar());
+
+      try
+      {
+         message.getBytes(itemName);
+         fail("MessageFormatException");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+   
+   public void testSetObjectFromBoolean() throws Exception
+   {
+      boolean value = randomBoolean();
+      JBossMapMessage message = new JBossMapMessage();
+      message.setObject(itemName, value);
+
+      assertEquals(value, message.getObject(itemName));
+   }
+   
+   public void testSetObjectFromByte() throws Exception
+   {
+      doTestSetObject(randomByte());
+   }
+   
+   public void testSetObjectFromShort() throws Exception
+   {
+      doTestSetObject(randomShort());
+   }
+   
+   public void testSetObjectFromChar() throws Exception
+   {
+      doTestSetObject(randomChar());
+   }
+   
+   public void testSetObjectFromInt() throws Exception
+   {
+      doTestSetObject(randomInt());
+   }
+   
+   public void testSetObjectFromLong() throws Exception
+   {
+      doTestSetObject(randomLong());
+   }
+   
+   public void testSetObjectFromFloat() throws Exception
+   {
+      doTestSetObject(randomFloat());
+   }
+   
+   public void testSetObjectFromDouble() throws Exception
+   {
+      doTestSetObject(randomDouble());
+   }
+   
+   public void testSetObjectFromString() throws Exception
+   {
+      doTestSetObject(randomString());
+   }
+   
+   public void testSetObjectFromBytes() throws Exception
+   {
+      doTestSetObject(randomBytes());
+   }
+   
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   private void doTestSetObject(Object value) throws Exception
+   {
+      JBossMapMessage message = new JBossMapMessage();
+      message.setObject(itemName, value);
+
+      assertEquals(value, message.getObject(itemName));
+   }
+   
+   // Inner classes -------------------------------------------------
+}

Added: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossMessageTest.java	2008-06-17 14:50:57 UTC (rev 4505)
@@ -0,0 +1,1361 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.tests.unit.jms.client;
+
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.createStrictMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomByte;
+import static org.jboss.messaging.tests.util.RandomUtil.randomBytes;
+import static org.jboss.messaging.tests.util.RandomUtil.randomDouble;
+import static org.jboss.messaging.tests.util.RandomUtil.randomFloat;
+import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
+import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
+import static org.jboss.messaging.tests.util.RandomUtil.randomShort;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import java.util.Collections;
+
+import javax.jms.DeliveryMode;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageFormatException;
+
+import junit.framework.TestCase;
+
+import org.easymock.EasyMock;
+import org.jboss.messaging.core.client.ClientMessage;
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.jms.client.JBossBytesMessage;
+import org.jboss.messaging.jms.client.JBossMapMessage;
+import org.jboss.messaging.jms.client.JBossMessage;
+import org.jboss.messaging.jms.client.JBossObjectMessage;
+import org.jboss.messaging.jms.client.JBossStreamMessage;
+import org.jboss.messaging.jms.client.JBossTextMessage;
+import org.jboss.messaging.util.MessagingBuffer;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ * 
+ */
+public class JBossMessageTest extends TestCase
+{
+   private ClientSession clientSession;
+   private ClientMessage clientMessage;
+   private String propertyName;
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+   
+   public void testCreateMessage() throws Exception
+   {
+      doTestCreateMessage(JBossMessage.TYPE, JBossMessage.class);
+   }
+
+   public void testCreateBytesMessage() throws Exception
+   {
+      doTestCreateMessage(JBossBytesMessage.TYPE, JBossBytesMessage.class);
+   }
+
+   public void testCreateMapMessage() throws Exception
+   {
+      doTestCreateMessage(JBossMapMessage.TYPE, JBossMapMessage.class);
+   }
+
+   public void testCreateObjectMessage() throws Exception
+   {
+      doTestCreateMessage(JBossObjectMessage.TYPE, JBossObjectMessage.class);
+   }
+
+   public void testCreateStreamMessage() throws Exception
+   {
+      doTestCreateMessage(JBossStreamMessage.TYPE, JBossStreamMessage.class);
+   }
+
+   public void testCreateTextMessage() throws Exception
+   {
+      doTestCreateMessage(JBossTextMessage.TYPE, JBossTextMessage.class);
+   }
+
+   public void testCreateInvalidMessage() throws Exception
+   {
+      try
+      {
+         doTestCreateMessage((byte) 23, JBossTextMessage.class);
+         fail("must throw a IllegalArgumentException");
+      } catch (IllegalArgumentException e)
+      {
+      }
+   }
+
+   public void testForeignMessage() throws Exception
+   {
+      Message foreignMessage = createNiceMock(Message.class);
+      expect(foreignMessage.getJMSDeliveryMode()).andReturn(
+            DeliveryMode.NON_PERSISTENT);
+      expect(foreignMessage.getPropertyNames()).andReturn(
+            Collections.enumeration(Collections.EMPTY_LIST));
+
+      replay(foreignMessage);
+
+      JBossMessage msg = new JBossMessage(foreignMessage);
+
+      verify(foreignMessage);
+   }
+
+   public void testGetJMSMessageID() throws Exception
+   {
+      SimpleString messageID = randomSimpleString();
+      clientSession = createStrictMock(ClientSession.class);
+      clientMessage = createStrictMock(ClientMessage.class);
+      MessagingBuffer buffer = createStrictMock(MessagingBuffer.class);
+      expect(clientMessage.getBody()).andReturn(buffer);
+      expect(clientMessage.getProperty(JBossMessage.JBM_MESSAGE_ID)).andReturn(
+            messageID);
+      replay(clientSession, clientMessage, buffer);
+
+      JBossMessage message = new JBossMessage(clientMessage, clientSession);
+      assertEquals(messageID.toString(), message.getJMSMessageID());
+
+      verify(clientSession, clientMessage, buffer);
+   }
+   
+   public void testGetJMSDeliveryModeAsPersistent() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().setDurable(true);
+      
+      assertEquals(DeliveryMode.PERSISTENT, message.getJMSDeliveryMode());
+   }
+
+   public void testGetJMSDeliveryModeAsNonPersistent() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().setDurable(false);
+      
+      assertEquals(DeliveryMode.NON_PERSISTENT, message.getJMSDeliveryMode());
+   }
+
+   public void testSetJMSDeliveryModeWithPersistent() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
+      
+      assertTrue(message.getCoreMessage().isDurable());
+   }
+
+   public void testSetJMSDeliveryModeWithNonPersistent() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
+      
+      assertFalse(message.getCoreMessage().isDurable());
+   }
+
+   public void testSetJMSDeliveryModeWithInvalidValue() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.setJMSDeliveryMode(12345);         
+         fail("invalid DeliveryMode value");
+      } catch (JMSException e)
+      {
+      }
+   }
+   
+   public void testGetJMSRedelivered() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      message.getCoreMessage().setDeliveryCount(0);
+      assertFalse(message.getJMSRedelivered());
+      
+      message.getCoreMessage().setDeliveryCount(1);
+      assertFalse(message.getJMSRedelivered());
+
+      message.getCoreMessage().setDeliveryCount(2);
+      assertTrue(message.getJMSRedelivered());
+   }
+   
+   public void testSetJMSRedeliveredToTrue() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+
+      message.setJMSRedelivered(true);
+      assertEquals(2, message.getCoreMessage().getDeliveryCount());
+   }
+   
+   public void testSetJMSRedeliveredToFalse() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+
+      message.setJMSRedelivered(false);
+      assertEquals(1, message.getCoreMessage().getDeliveryCount());
+   }
+
+   public void testSetJMSType() throws Exception
+   {
+      String type = randomString();
+      JBossMessage message = new JBossMessage();      
+      message.setJMSType(type);
+      
+      SimpleString t = (SimpleString) message.getCoreMessage().getProperty(JBossMessage.TYPE_HEADER_NAME);
+      assertEquals(type, t.toString());
+   }
+   
+   public void testGetJMSType() throws Exception
+   {
+      String type = randomString();
+      JBossMessage message = new JBossMessage();      
+    
+      assertNull(message.getJMSType());
+      
+      message.getCoreMessage().putStringProperty(JBossMessage.TYPE_HEADER_NAME, new SimpleString(type));
+      assertEquals(type, message.getJMSType());
+   }
+   
+   public void testSetJMSTimestamp() throws Exception
+   {
+      long timestamp = randomLong();
+      JBossMessage message = new JBossMessage();      
+      message.setJMSTimestamp(timestamp);
+      
+      assertEquals(timestamp, message.getCoreMessage().getTimestamp());
+   }
+   
+   public void testGetJMSTimestamp() throws Exception
+   {
+      long timestamp = randomLong();
+      JBossMessage message = new JBossMessage();      
+      message.getCoreMessage().setTimestamp(timestamp);
+    
+      assertEquals(timestamp, message.getJMSTimestamp());
+   }
+   
+   public void testSetJMSCorrelationID() throws Exception
+   {
+      String correlationID = randomString();
+      JBossMessage message = new JBossMessage();      
+    
+      message.setJMSCorrelationID(correlationID);
+      
+      SimpleString value = (SimpleString) message.getCoreMessage().getProperty(JBossMessage.CORRELATIONID_HEADER_NAME);
+      
+      assertEquals(correlationID, value.toString());      
+   }
+   
+   public void testSetJMSCorrelationIDToNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();      
+      message.setJMSCorrelationID(null);
+      
+      assertFalse(message.getCoreMessage().containsProperty(JBossMessage.CORRELATIONID_HEADER_NAME));
+   }
+   
+   public void testGetJMSCorrelationID() throws Exception
+   {
+      String correlationID = randomString();
+      JBossMessage message = new JBossMessage();
+      
+      message.getCoreMessage().putStringProperty(JBossMessage.CORRELATIONID_HEADER_NAME, new SimpleString(correlationID));
+      
+      assertEquals(correlationID, message.getJMSCorrelationID());
+   }
+   
+   
+   public void testSetJMSCorrelationIDAsBytes() throws Exception
+   {
+      byte[] correlationID = randomBytes();
+      JBossMessage message = new JBossMessage();      
+    
+      message.setJMSCorrelationIDAsBytes(correlationID);
+      
+      byte[] value = (byte[]) message.getCoreMessage().getProperty(JBossMessage.CORRELATIONID_HEADER_NAME);
+      
+      assertEquals(correlationID, value);      
+   }
+   
+   public void testGetJMSCorrelationIDAsBytes() throws Exception
+   {
+      byte[] correlationID = randomBytes();
+      JBossMessage message = new JBossMessage();
+      
+      message.getCoreMessage().putBytesProperty(JBossMessage.CORRELATIONID_HEADER_NAME, correlationID);
+      
+      assertEquals(correlationID, message.getJMSCorrelationIDAsBytes());
+   }
+   
+   public void testSetPriority() throws Exception
+   {
+      int priority = 9;
+      JBossMessage message = new JBossMessage();
+      
+      message.setJMSPriority(priority);
+      assertEquals(priority, message.getCoreMessage().getPriority());
+   }
+   
+   public void testSetInvalidPriority() throws Exception
+   {
+      int invalidPriority = 10;
+      JBossMessage message = new JBossMessage();
+
+      try {
+         message.setJMSPriority(invalidPriority);
+         fail("0 <= priority <= 9");
+      } catch(JMSException e)
+      {
+      }
+   }
+   
+   public void testGetPriority() throws Exception
+   {
+      int priority = 9;
+      JBossMessage message = new JBossMessage();
+
+      message.getCoreMessage().setPriority((byte) priority);
+      assertEquals(priority, message.getJMSPriority());
+   }
+   
+   public void testSetJMSExpiration() throws Exception
+   {
+      long expiration = randomLong();
+      JBossMessage message = new JBossMessage();
+      message.setJMSExpiration(expiration);
+      
+      assertEquals(expiration, message.getCoreMessage().getExpiration());
+   }
+
+   public void testGetJMSExpiration() throws Exception
+   {
+      long expiration = randomLong();
+      JBossMessage message = new JBossMessage();
+      
+      message.getCoreMessage().setExpiration(expiration);
+      assertEquals(expiration, message.getJMSExpiration());
+   }
+
+   public void testSetJMSMessageID() throws Exception
+   {
+      String messageID = "ID:" + randomString();
+      clientSession = createStrictMock(ClientSession.class);
+      clientMessage = createStrictMock(ClientMessage.class);
+      MessagingBuffer buffer = createStrictMock(MessagingBuffer.class);
+      expect(clientMessage.getBody()).andReturn(buffer);
+      clientMessage.putStringProperty(JBossMessage.JBM_MESSAGE_ID,
+            new SimpleString(messageID));
+      replay(clientSession, clientMessage, buffer);
+
+      JBossMessage message = new JBossMessage(clientMessage, clientSession);
+      message.setJMSMessageID(messageID);
+
+      verify(clientSession, clientMessage, buffer);
+   }
+
+   public void testSetJMSMessageIDNotStartingWithID() throws Exception
+   {
+      String messageID = randomString();
+      assertTrue(!messageID.startsWith("ID:"));
+      clientSession = createStrictMock(ClientSession.class);
+      clientMessage = createStrictMock(ClientMessage.class);
+      MessagingBuffer buffer = createStrictMock(MessagingBuffer.class);
+      expect(clientMessage.getBody()).andReturn(buffer);
+      replay(clientSession, clientMessage, buffer);
+
+      JBossMessage message = new JBossMessage(clientMessage, clientSession);
+      try
+      {
+         message.setJMSMessageID(messageID);
+         fail("messageID does not start with ID:");
+      } catch (JMSException e)
+      {
+
+      }
+
+      verify(clientSession, clientMessage, buffer);
+   }
+
+   public void testSetJMSMessageIDWithNull() throws Exception
+   {
+      String messageID = null;
+      clientSession = createStrictMock(ClientSession.class);
+      clientMessage = createStrictMock(ClientMessage.class);
+      MessagingBuffer buffer = createStrictMock(MessagingBuffer.class);
+      expect(clientMessage.getBody()).andReturn(buffer);
+      expect(clientMessage.removeProperty(JBossMessage.JBM_MESSAGE_ID))
+            .andReturn(null);
+      replay(clientSession, clientMessage, buffer);
+
+      JBossMessage message = new JBossMessage(clientMessage, clientSession);
+      message.setJMSMessageID(messageID);
+
+      verify(clientSession, clientMessage, buffer);
+   }
+
+   public void testCheckPropertyNameIsNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.setBooleanProperty(null, true);
+         fail("property name can not be null");
+      } catch (IllegalArgumentException e)
+      {
+      }
+   }
+   
+   public void testCheckPropertyNameIsEmpty() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.setBooleanProperty("a-1", true);
+         fail("property name can not be an invalid java identifier");
+      } catch (IllegalArgumentException e)
+      {
+      }
+   }
+   
+   public void testCheckPropertyNameIsNotJavaIdentifier() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.setBooleanProperty("", true);
+         fail("property name can not be empty");
+      } catch (IllegalArgumentException e)
+      {
+      }
+   }
+   
+   public void testCheckPropertyNameIsReservedIdentifier() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.setBooleanProperty("BETWEEN", true);
+         fail("property name can not be a reserverd identifier used by message selector");
+      } catch (IllegalArgumentException e)
+      {
+      }
+   }
+   
+   public void testCheckPropertyNameStartingWithJMS() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.setBooleanProperty("JMSWathever", true);
+         fail("property name can not start with JMS");
+      } catch (IllegalArgumentException e)
+      {
+      }
+   }
+   public void testSetBooleanProperty() throws Exception
+   {
+      boolean value = true;
+
+      JBossMessage message = new JBossMessage();
+      message.setBooleanProperty(propertyName, value);
+
+      boolean v = (Boolean) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testGetBooleanProperty() throws Exception
+   {
+      boolean value = true;
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putBooleanProperty(new SimpleString(propertyName), value);
+      
+      boolean v = message.getBooleanProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetBooleanPropertyWithNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      boolean v = message.getBooleanProperty(propertyName);
+      assertEquals(false, v);
+   }
+   
+   public void testGetBooleanPropertyWithString() throws Exception
+   {
+      SimpleString value = new SimpleString("true");
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), value);
+      
+      boolean v = message.getBooleanProperty(propertyName);
+      assertEquals(true, v);
+   }
+   
+   public void testGetBooleanPropertyWithInvalidType() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putFloatProperty(new SimpleString(propertyName), randomFloat());
+
+      try
+      {
+         message.getBooleanProperty(propertyName);
+         fail("invalid conversion");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+   
+   public void testSetByteProperty() throws Exception
+   {
+      byte value = randomByte();
+
+      JBossMessage message = new JBossMessage();
+      message.setByteProperty(propertyName, value);
+
+      byte v = (Byte) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+   
+   public void testGetByteProperty() throws Exception
+   {
+      byte value = randomByte();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putByteProperty(new SimpleString(propertyName), value);
+      
+      byte v = message.getByteProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetBytePropertyWithNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.getByteProperty(propertyName);
+         fail("can not get a null byte property");
+      } catch (NumberFormatException e)
+      {
+      }
+   }
+   
+   public void testGetBytePropertyWithString() throws Exception
+   {
+      byte b = randomByte();
+      SimpleString value = new SimpleString(Byte.toString(b));
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), value);
+      
+      byte v = message.getByteProperty(propertyName);
+      assertEquals(b, v);
+   }
+   
+   public void testGetBytePropertyWithInvalidType() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putFloatProperty(new SimpleString(propertyName), randomFloat());
+
+      try
+      {
+         message.getByteProperty(propertyName);
+         fail("invalid conversion");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testSetShortProperty() throws Exception
+   {
+      short value = randomShort();
+
+      JBossMessage message = new JBossMessage();
+      message.setShortProperty(propertyName, value);
+
+      short v = (Short) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testGetShortProperty() throws Exception
+   {
+      short value = randomShort();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putShortProperty(new SimpleString(propertyName), value);
+      
+      short v = message.getShortProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetShortPropertyWithNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.getShortProperty(propertyName);
+         fail("can not get a null byte property");
+      } catch (NumberFormatException e)
+      {
+      }
+   }
+   
+   public void testGetShortPropertyWithByte() throws Exception
+   {
+      byte value = randomByte();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putByteProperty(new SimpleString(propertyName), value);
+      
+      short v = message.getShortProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetShortPropertyWithString() throws Exception
+   {
+      short s = randomShort();
+      SimpleString value = new SimpleString(Short.toString(s));
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), value);
+      
+      short v = message.getShortProperty(propertyName);
+      assertEquals(s, v);
+   }
+   
+   public void testGetShortPropertyWithInvalidType() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putFloatProperty(new SimpleString(propertyName), randomFloat());
+
+      try
+      {
+         message.getShortProperty(propertyName);
+         fail("invalid conversion");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+   
+   public void testSetIntProperty() throws Exception
+   {
+      int value = randomInt();
+
+      JBossMessage message = new JBossMessage();
+      message.setIntProperty(propertyName, value);
+
+      int v = (Integer) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testGetIntProperty() throws Exception
+   {
+      int value = randomInt();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putIntProperty(new SimpleString(propertyName), value);
+      
+      int v = message.getIntProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetIntPropertyWithJMSXDeliveryCount() throws Exception
+   {
+      int value = randomInt();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().setDeliveryCount(value);
+      
+      int v = message.getIntProperty(JBossMessage.JMSXDELIVERYCOUNT);
+      assertEquals(value, v);
+   }
+   public void testGetIntPropertyWithNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.getIntProperty(propertyName);
+         fail("can not get a null byte property");
+      } catch (NumberFormatException e)
+      {
+      }
+   }
+   
+   public void testGetIntPropertyWithByte() throws Exception
+   {
+      byte value = randomByte();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putByteProperty(new SimpleString(propertyName), value);
+      
+      int v = message.getIntProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetIntPropertyWithShort() throws Exception
+   {
+      short value = randomShort();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putShortProperty(new SimpleString(propertyName), value);
+      
+      int v = message.getIntProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetIntPropertyWithString() throws Exception
+   {
+      int i = randomInt();
+      SimpleString value = new SimpleString(Integer.toString(i));
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), value);
+      
+      int v = message.getIntProperty(propertyName);
+      assertEquals(i, v);
+   }
+   
+   public void testGetIntPropertyWithInvalidType() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putFloatProperty(new SimpleString(propertyName), randomFloat());
+
+      try
+      {
+         message.getIntProperty(propertyName);
+         fail("invalid conversion");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+   
+   public void testSetLongProperty() throws Exception
+   {
+      long value = randomLong();
+
+      JBossMessage message = new JBossMessage();
+      message.setLongProperty(propertyName, value);
+
+      long v = (Long) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testGetLongProperty() throws Exception
+   {
+      long value = randomLong();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putLongProperty(new SimpleString(propertyName), value);
+      
+      long v = message.getLongProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetLongPropertyWithJMSXDeliveryCount() throws Exception
+   {
+      int value = randomInt();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().setDeliveryCount(value);
+      
+      long v = message.getLongProperty(JBossMessage.JMSXDELIVERYCOUNT);
+      assertEquals(value, v);
+   }
+   
+   public void testGetLongPropertyWithNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.getLongProperty(propertyName);
+         fail("can not get a null byte property");
+      } catch (NumberFormatException e)
+      {
+      }
+   }
+   
+   public void testGetLongPropertyWithByte() throws Exception
+   {
+      byte value = randomByte();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putByteProperty(new SimpleString(propertyName), value);
+      
+      long v = message.getLongProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetLongPropertyWithShort() throws Exception
+   {
+      short value = randomShort();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putShortProperty(new SimpleString(propertyName), value);
+      
+      long v = message.getLongProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetLongPropertyWithInt() throws Exception
+   {
+      int value = randomInt();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putIntProperty(new SimpleString(propertyName), value);
+      
+      long v = message.getLongProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetLongPropertyWithString() throws Exception
+   {
+      long l = randomLong();
+      SimpleString value = new SimpleString(Long.toString(l));
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), value);
+      
+      long v = message.getLongProperty(propertyName);
+      assertEquals(l, v);
+   }
+   
+   public void testGetLongPropertyWithInvalidType() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putFloatProperty(new SimpleString(propertyName), randomFloat());
+
+      try
+      {
+         message.getLongProperty(propertyName);
+         fail("invalid conversion");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+   
+   public void testSetFloatProperty() throws Exception
+   {
+      float value = randomFloat();
+
+      JBossMessage message = new JBossMessage();
+      message.setFloatProperty(propertyName, value);
+
+      float v = (Float) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+   
+   public void testGetFloatProperty() throws Exception
+   {
+      float value = randomFloat();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putFloatProperty(new SimpleString(propertyName), value);
+      
+      float v = message.getFloatProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetFloatPropertyWithNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.getFloatProperty(propertyName);
+         fail("can not get a null float property");
+      } catch (NullPointerException e)
+      {
+      }
+   }
+   
+   public void testGetFloatPropertyWithString() throws Exception
+   {
+      float f = randomFloat();
+      SimpleString value = new SimpleString(Float.toString(f));
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), value);
+      
+      float v = message.getFloatProperty(propertyName);
+      assertEquals(f, v);
+   }
+   
+   public void testGetFloatPropertyWithInvalidType() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putBooleanProperty(new SimpleString(propertyName), true);
+
+      try
+      {
+         message.getFloatProperty(propertyName);
+         fail("invalid conversion");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testSetDoubleProperty() throws Exception
+   {
+      double value = randomDouble();
+
+      JBossMessage message = new JBossMessage();
+      message.setDoubleProperty(propertyName, value);
+
+      double v = (Double) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+   
+   public void testGetDoubleProperty() throws Exception
+   {
+      double value = randomDouble();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putDoubleProperty(new SimpleString(propertyName), value);
+      
+      double v = message.getDoubleProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetDoublePropertyWithNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      try
+      {
+         message.getDoubleProperty(propertyName);
+         fail("can not get a null float property");
+      } catch (NullPointerException e)
+      {
+      }
+   }
+   
+   public void testGetDoublePropertyWithFloat() throws Exception
+   {
+      float value = randomFloat();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putFloatProperty(new SimpleString(propertyName), value);
+      
+      double v = message.getDoubleProperty(propertyName);
+      assertEquals(Float.valueOf(value).doubleValue(), v);
+   }
+   
+   public void testGetDoublePropertyWithString() throws Exception
+   {
+      double d = randomDouble();
+      SimpleString value = new SimpleString(Double.toString(d));
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), value);
+      
+      double v = message.getDoubleProperty(propertyName);
+      assertEquals(d, v);
+   }
+   
+   public void testGetDoublePropertyWithInvalidType() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putBooleanProperty(new SimpleString(propertyName), true);
+
+      try
+      {
+         message.getDoubleProperty(propertyName);
+         fail("invalid conversion");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+
+   public void testSetStringProperty() throws Exception
+   {
+      String value = randomString();
+
+      JBossMessage message = new JBossMessage();
+      message.setStringProperty(propertyName, value);
+
+      SimpleString v = (SimpleString) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v.toString());
+   }
+
+   public void testGetStringProperty() throws Exception
+   {
+      String value = randomString();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), new SimpleString(value));
+      
+      String v = message.getStringProperty(propertyName);
+      assertEquals(value, v);
+   }
+   
+   public void testGetStringPropertyWithJMSXDeliveryCount() throws Exception
+   {
+      int value = randomInt();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().setDeliveryCount(value);
+      
+      String v = message.getStringProperty(JBossMessage.JMSXDELIVERYCOUNT);
+      assertEquals(Integer.toString(value), v);
+   }
+   
+   public void testGetStringPropertyWithNull() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      String value = message.getStringProperty(propertyName);
+      assertNull(value);
+   }
+   
+   public void testGetStringPropertyWithBoolean() throws Exception
+   {
+      boolean value = true;
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putBooleanProperty(new SimpleString(propertyName), value);
+      
+      String v = message.getStringProperty(propertyName);
+      assertEquals(Boolean.toString(value), v);
+   }
+   
+   public void testGetStringPropertyWithByte() throws Exception
+   {
+      byte value = randomByte();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putByteProperty(new SimpleString(propertyName), value);
+      
+      String v = message.getStringProperty(propertyName);
+      assertEquals(Byte.toString(value), v);
+   }
+   
+   public void testGetStringPropertyWithShort() throws Exception
+   {
+      short value = randomShort();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putShortProperty(new SimpleString(propertyName), value);
+      
+      String v = message.getStringProperty(propertyName);
+      assertEquals(Short.toString(value), v);
+   }
+   
+   public void testGetStringPropertyWithInt() throws Exception
+   {
+      int value = randomInt();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putIntProperty(new SimpleString(propertyName), value);
+      
+      String v = message.getStringProperty(propertyName);
+      assertEquals(Integer.toString(value), v);
+   }
+   
+   public void testGetStringPropertyWithLong() throws Exception
+   {
+      long value = randomLong();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putLongProperty(new SimpleString(propertyName), value);
+      
+      String v = message.getStringProperty(propertyName);
+      assertEquals(Long.toString(value), v);
+   }
+   
+   public void testGetStringPropertyWithFloat() throws Exception
+   {
+      float value = randomFloat();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putFloatProperty(new SimpleString(propertyName), value);
+      
+      String v = message.getStringProperty(propertyName);
+      assertEquals(Float.toString(value), v);
+   }
+   
+   public void testGetStringPropertyWithDouble() throws Exception
+   {
+      double value = randomDouble();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putDoubleProperty(new SimpleString(propertyName), value);
+      
+      String v = message.getStringProperty(propertyName);
+      assertEquals(Double.toString(value), v);
+   }
+   
+   public void testSetObjectPropertyWithBoolean() throws Exception
+   {
+      boolean value = true;
+
+      JBossMessage message = new JBossMessage();
+      message.setObjectProperty(propertyName, value);
+
+      boolean v = (Boolean) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testSetObjectPropertyWithByte() throws Exception
+   {
+      byte value = randomByte();
+
+      JBossMessage message = new JBossMessage();
+      message.setObjectProperty(propertyName, value);
+
+      byte v = (Byte) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testSetObjectPropertyWithShort() throws Exception
+   {
+      short value = randomShort();
+
+      JBossMessage message = new JBossMessage();
+      message.setObjectProperty(propertyName, value);
+
+      short v = (Short) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testSetObjectPropertyWithInt() throws Exception
+   {
+      int value = randomInt();
+
+      JBossMessage message = new JBossMessage();
+      message.setObjectProperty(propertyName, value);
+
+      int v = (Integer) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testSetObjectPropertyWithLong() throws Exception
+   {
+      long value = randomLong();
+
+      JBossMessage message = new JBossMessage();
+      message.setObjectProperty(propertyName, value);
+
+      long v = (Long) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testSetObjectPropertyWithFloat() throws Exception
+   {
+      float value = randomFloat();
+
+      JBossMessage message = new JBossMessage();
+      message.setObjectProperty(propertyName, value);
+
+      float v = (Float) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testSetObjectPropertyWithDouble() throws Exception
+   {
+      double value = randomDouble();
+
+      JBossMessage message = new JBossMessage();
+      message.setObjectProperty(propertyName, value);
+
+      double v = (Double) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v);
+   }
+
+   public void testSetObjectPropertyWithString() throws Exception
+   {
+      String value = randomString();
+
+      JBossMessage message = new JBossMessage();
+      message.setObjectProperty(propertyName, value);
+
+      SimpleString v = (SimpleString) message.getCoreMessage().getProperty(
+            new SimpleString(propertyName));
+      assertEquals(value, v.toString());
+   }
+
+   public void testSetObjectPropertyWithInvalidType() throws Exception
+   {
+
+      JBossMessage message = new JBossMessage();
+      try
+      {
+         message.setObjectProperty(propertyName, new Character('a'));
+         fail("invalid type");
+      } catch (MessageFormatException e)
+      {
+      }
+   }
+   
+   public void testGetObjectProperty() throws Exception
+   {
+      double value = randomDouble();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putDoubleProperty(new SimpleString(propertyName), value);
+      
+      Object v = message.getObjectProperty(propertyName);
+      assertTrue(v instanceof Double);
+      assertEquals(value, v);
+   }
+   
+   public void testGetObjectPropertyWithString() throws Exception
+   {
+      String value = randomString();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().putStringProperty(new SimpleString(propertyName), new SimpleString(value));
+      
+      Object v = message.getObjectProperty(propertyName);
+      assertTrue(v instanceof String);
+      assertEquals(value, v);
+   }
+   
+   public void testGetObjectPropertyWithJMSXDeliveryCount() throws Exception
+   {
+      int value = randomInt();
+      
+      JBossMessage message = new JBossMessage();
+      message.getCoreMessage().setDeliveryCount(value);
+      
+      Object v = message.getObjectProperty(JBossMessage.JMSXDELIVERYCOUNT);
+      assertTrue(v instanceof String);
+      assertEquals(Integer.toString(value), v);
+   }
+
+   public void testClearProperties() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      message.setBooleanProperty(propertyName, true);
+      
+      assertTrue(message.getBooleanProperty(propertyName));
+      
+      message.clearProperties();
+      
+      assertFalse(message.getBooleanProperty(propertyName));
+   }
+   
+   public void testPropertyExists() throws Exception
+   {
+      JBossMessage message = new JBossMessage();
+      
+      assertFalse(message.propertyExists(propertyName));
+      
+      message.setBooleanProperty(propertyName, true);
+      
+      assertTrue(message.propertyExists(propertyName));
+   }
+   
+   public void testAcknowledge() throws Exception
+   {
+      clientMessage = createStrictMock(ClientMessage.class);
+      clientSession = createStrictMock(ClientSession.class);
+      MessagingBuffer buffer = createStrictMock(MessagingBuffer.class);
+      expect(clientMessage.getBody()).andReturn(buffer);
+      clientSession.commit();
+      replay(clientMessage, clientSession, buffer);
+      
+      JBossMessage message = new JBossMessage(clientMessage, clientSession);      
+      message.acknowledge();
+      
+      verify(clientMessage, clientSession, buffer);
+   }
+   
+   public void testAcknowledgeThrowsException() throws Exception
+   {
+      clientMessage = createStrictMock(ClientMessage.class);
+      clientSession = createStrictMock(ClientSession.class);
+      MessagingBuffer buffer = createStrictMock(MessagingBuffer.class);
+      expect(clientMessage.getBody()).andReturn(buffer);
+      clientSession.commit();
+      EasyMock.expectLastCall().andThrow(new MessagingException());
+      replay(clientMessage, clientSession, buffer);
+      
+      JBossMessage message = new JBossMessage(clientMessage, clientSession);      
+      try
+      {
+         message.acknowledge();
+         fail("JMSException");
+      } catch (JMSException e)
+      {
+      }
+      
+      verify(clientMessage, clientSession, buffer);
+   }
+   
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+
+      propertyName = "property";
+   }
+
+   // Private -------------------------------------------------------
+
+   private void doTestCreateMessage(byte expectedType, Class expectedInterface)
+         throws Exception
+   {
+      clientSession = createStrictMock(ClientSession.class);
+      clientMessage = createStrictMock(ClientMessage.class);
+      MessagingBuffer buffer = createStrictMock(MessagingBuffer.class);
+      expect(clientMessage.getType()).andReturn(expectedType);
+      expect(clientMessage.getBody()).andReturn(buffer);
+      replay(clientSession, clientMessage, buffer);
+
+      JBossMessage message = JBossMessage.createMessage(clientMessage,
+            clientSession);
+      assertEquals(expectedType, message.getType());
+      assertTrue(message.getClass().isAssignableFrom(expectedInterface));
+
+      verify(clientSession, clientMessage, buffer);
+   }
+
+   // Inner classes -------------------------------------------------
+}

Added: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossObjectMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossObjectMessageTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossObjectMessageTest.java	2008-06-17 14:50:57 UTC (rev 4505)
@@ -0,0 +1,141 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.tests.unit.jms.client;
+
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.Collections;
+
+import javax.jms.DeliveryMode;
+import javax.jms.ObjectMessage;
+
+import junit.framework.TestCase;
+
+import org.jboss.messaging.jms.client.JBossObjectMessage;
+import org.jboss.messaging.tests.unit.core.remoting.impl.CodecAssert;
+import org.jboss.messaging.util.MessagingBuffer;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ * 
+ */
+public class JBossObjectMessageTest extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private Serializable object;
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+
+      object = randomString();
+   }
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testForeignObjectMessage() throws Exception
+   {
+      ObjectMessage foreignMessage = createNiceMock(ObjectMessage.class);
+      expect(foreignMessage.getJMSDeliveryMode()).andReturn(DeliveryMode.NON_PERSISTENT);
+      expect(foreignMessage.getPropertyNames()).andReturn(Collections.enumeration(Collections.EMPTY_LIST));
+      expect(foreignMessage.getObject()).andReturn(object);
+      
+      replay(foreignMessage);
+      
+      JBossObjectMessage msg = new JBossObjectMessage(foreignMessage);
+      assertEquals(object, msg.getObject());
+      
+      verify(foreignMessage);
+   }
+   
+   public void testGetText() throws Exception
+   {
+      JBossObjectMessage msg = new JBossObjectMessage();
+      msg.setObject(object);
+      assertEquals(object, msg.getObject());
+   }
+
+   public void testClearBody() throws Exception
+   {
+      JBossObjectMessage msg = new JBossObjectMessage();
+      msg.setObject(object);
+      assertEquals(object, msg.getObject());
+      msg.clearBody();
+      assertEquals(null, msg.getObject());
+   }
+   
+   public void testGetType() throws Exception
+   {
+      JBossObjectMessage msg = new JBossObjectMessage();
+      assertEquals(JBossObjectMessage.TYPE, msg.getType());
+   }
+   
+   public void testDoBeforeSend() throws Exception
+   {
+      ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);      
+      ObjectOutputStream oos = new ObjectOutputStream(baos);
+      oos.writeObject(object);
+      oos.flush();
+      byte[] data = baos.toByteArray();
+
+      JBossObjectMessage msg = new JBossObjectMessage();
+      msg.setObject(object);
+      
+      msg.doBeforeSend();
+
+      MessagingBuffer body = msg.getCoreMessage().getBody();
+      assertEquals(data.length, body.getInt());
+      byte[] bytes = new byte[data.length];
+      body.getBytes(bytes);
+      
+      CodecAssert.assertEqualsByteArrays(data, bytes);
+   }
+   
+   public void testDoBeforeReceive() throws Exception
+   {
+      ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);      
+      ObjectOutputStream oos = new ObjectOutputStream(baos);
+      oos.writeObject(object);
+      oos.flush();
+      byte[] data = baos.toByteArray();
+      
+      JBossObjectMessage message = new JBossObjectMessage();
+      MessagingBuffer body = message.getCoreMessage().getBody();
+      body.putInt(data.length);
+      body.putBytes(data);
+      body.flip();
+      
+      message.doBeforeReceive();
+      
+      assertEquals(object, message.getObject());
+   }
+   
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Added: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossTextMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossTextMessageTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossTextMessageTest.java	2008-06-17 14:50:57 UTC (rev 4505)
@@ -0,0 +1,124 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.tests.unit.jms.client;
+
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.createStrictMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import java.util.Collections;
+
+import javax.jms.DeliveryMode;
+import javax.jms.TextMessage;
+
+import junit.framework.TestCase;
+
+import org.easymock.EasyMock;
+import org.jboss.messaging.jms.client.JBossTextMessage;
+import org.jboss.messaging.util.MessagingBuffer;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ * 
+ */
+public class JBossTextMessageTest extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private String text;
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+
+      text = randomString();
+   }
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testForeignTextMessage() throws Exception
+   {
+      TextMessage foreignMessage = createNiceMock(TextMessage.class);
+      expect(foreignMessage.getJMSDeliveryMode()).andReturn(DeliveryMode.NON_PERSISTENT);
+      expect(foreignMessage.getPropertyNames()).andReturn(Collections.enumeration(Collections.EMPTY_LIST));
+      expect(foreignMessage.getText()).andReturn(text);
+      
+      replay(foreignMessage);
+      
+      JBossTextMessage msg = new JBossTextMessage(foreignMessage);
+      assertEquals(text, msg.getText());
+      
+      verify(foreignMessage);
+   }
+   
+   public void testGetText() throws Exception
+   {
+      JBossTextMessage msg = new JBossTextMessage();
+      msg.setText(text);
+      assertEquals(text, msg.getText());
+   }
+
+   public void testClearBody() throws Exception
+   {
+      JBossTextMessage msg = new JBossTextMessage();
+      msg.setText(text);
+      assertEquals(text, msg.getText());
+      msg.clearBody();
+      assertEquals(null, msg.getText());
+   }
+   
+   public void testGetType() throws Exception
+   {
+      JBossTextMessage msg = new JBossTextMessage();
+      assertEquals(JBossTextMessage.TYPE, msg.getType());
+   }
+   
+   public void testDoBeforeSend() throws Exception
+   {
+      JBossTextMessage msg = new JBossTextMessage();
+      msg.setText(text);
+      
+      msg.doBeforeSend();
+
+      MessagingBuffer body = msg.getCoreMessage().getBody();
+      String s = body.getNullableString();
+      assertEquals(text, s);
+   }
+   
+   public void testDoBeforeReceive() throws Exception
+   {
+      JBossTextMessage msg = new JBossTextMessage();
+      assertNull(msg.getText());
+      MessagingBuffer body = msg.getCoreMessage().getBody();
+      body.putNullableString(text);
+      body.flip();
+      
+      msg.doBeforeReceive();
+      
+      assertEquals(text, msg.getText());
+   }
+   
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}




More information about the jboss-cvs-commits mailing list