public void TestWriteObject()
 {
     try
     {
         ActiveMQStreamMessage message = new ActiveMQStreamMessage();
         message.ClearBody();
         message.WriteObject("test");
         message.WriteObject((Char)'a');
         message.WriteObject((Boolean)false);
         message.WriteObject((Byte)((byte)2));
         message.WriteObject((Int16)((short)2));
         message.WriteObject((Int32)2);
         message.WriteObject((Int64)2L);
         message.WriteObject((Single)2.0f);
         message.WriteObject((Double)2.0);
     }
     catch (Exception e)
     {
         Assert.Fail(e.Message);
     }
     try
     {
         ActiveMQStreamMessage message = new ActiveMQStreamMessage();
         message.ClearBody();
         message.WriteObject(new Object());
         Assert.Fail("should throw an exception");
     }
     catch (MessageFormatException)
     {
     }
     catch (Exception e)
     {
         Assert.Fail(e.Message);
     }
 }
        public void TestClearBody()
        {
            ActiveMQStreamMessage streamMessage = new ActiveMQStreamMessage();

            try
            {
                streamMessage.WriteObject((Int64)2);
                streamMessage.ClearBody();
                Assert.IsFalse(streamMessage.ReadOnlyBody);
                streamMessage.WriteObject((Int64)2);
                streamMessage.ReadObject();
                Assert.Fail("should throw exception");
            }
            catch (MessageNotReadableException)
            {
            }
            catch (MessageNotWriteableException)
            {
                Assert.Fail("should be writeable");
            }
        }
        public void TestReadOnlyBody()
        {
            ActiveMQStreamMessage message = new ActiveMQStreamMessage();

            try
            {
                message.WriteBoolean(true);
                message.WriteByte((byte)1);
                message.WriteBytes(new byte[1]);
                message.WriteBytes(new byte[3], 0, 2);
                message.WriteChar('a');
                message.WriteDouble(1.5);
                message.WriteSingle((float)1.5);
                message.WriteInt32(1);
                message.WriteInt64(1);
                message.WriteObject("stringobj");
                message.WriteInt16((short)1);
                message.WriteString("string");
            }
            catch (MessageNotWriteableException)
            {
                Assert.Fail("Should be writeable");
            }
            message.Reset();
            try
            {
                message.ReadBoolean();
                message.ReadByte();
                Assert.AreEqual(1, message.ReadBytes(new byte[10]));
                Assert.AreEqual(-1, message.ReadBytes(new byte[10]));
                Assert.AreEqual(2, message.ReadBytes(new byte[10]));
                Assert.AreEqual(-1, message.ReadBytes(new byte[10]));
                message.ReadChar();
                message.ReadDouble();
                message.ReadSingle();
                message.ReadInt32();
                message.ReadInt64();
                message.ReadString();
                message.ReadInt16();
                message.ReadString();
            }
            catch (MessageNotReadableException)
            {
                Assert.Fail("Should be readable");
            }
            try
            {
                message.WriteBoolean(true);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteByte((byte)1);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteBytes(new byte[1]);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteBytes(new byte[3], 0, 2);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try {
                message.WriteChar('a');
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteDouble(1.5);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteSingle((float)1.5);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteInt32(1);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteInt64(1);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteObject("stringobj");
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteSingle((short)1);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
            try
            {
                message.WriteString("string");
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageNotWriteableException)
            {
            }
        }
        public void TestReadLong()
        {
            ActiveMQStreamMessage msg = new ActiveMQStreamMessage();

            long test = 4L;

            msg.WriteInt64(test);
            msg.Reset();
            Assert.IsTrue(msg.ReadInt64() == test);
            msg.Reset();
            Assert.IsTrue(msg.ReadString() == (test).ToString());
            msg.Reset();
            try
            {
                msg.ReadBoolean();
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageFormatException)
            {
            }
            msg.Reset();
            try
            {
                msg.ReadByte();
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageFormatException)
            {
            }
            msg.Reset();
            try
            {
                msg.ReadInt16();
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageFormatException)
            {
            }
            msg.Reset();
            try
            {
                msg.ReadInt32();
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageFormatException)
            {
            }
            msg.Reset();
            try
            {
                msg.ReadSingle();
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageFormatException)
            {
            }
            msg.Reset();
            try
            {
                msg.ReadDouble();
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageFormatException)
            {
            }
            msg.Reset();
            try
            {
                msg.ReadChar();
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageFormatException)
            {
            }
            msg.Reset();
            try
            {
                msg.ReadBytes(new byte[1]);
                Assert.Fail("Should have thrown exception");
            }
            catch (MessageFormatException)
            {
            }
            msg = new ActiveMQStreamMessage();
            msg.WriteObject((Int64)1);
            // Reset so it's readable now
            msg.Reset();
            Assert.AreEqual((Int64)1, msg.ReadObject());
        }