| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| using System; |
| using System.Text; |
| using Apache.NMS.ActiveMQ.Commands; |
| using Apache.NMS.ActiveMQ.OpenWire; |
| using NUnit.Framework; |
| |
| namespace Apache.NMS.ActiveMQ.Test.Commands |
| { |
| [TestFixture] |
| public class ActiveMQMessageTest |
| { |
| private string nmsMessageID; |
| private string nmsCorrelationID; |
| private ActiveMQTopic nmsDestination; |
| private ActiveMQTempTopic nmsReplyTo; |
| private MsgDeliveryMode nmsDeliveryMode; |
| private bool nmsRedelivered; |
| private string nmsType; |
| private MsgPriority nmsPriority; |
| private DateTime nmsTimestamp; |
| private long[] consumerIDs; |
| |
| [SetUp] |
| public virtual void SetUp() |
| { |
| this.nmsMessageID = "testid"; |
| this.nmsCorrelationID = "testcorrelationid"; |
| this.nmsDestination = new ActiveMQTopic("TEST.test.topic"); |
| this.nmsReplyTo = new ActiveMQTempTopic("TEST.test.replyto.topic:001"); |
| this.nmsDeliveryMode = MsgDeliveryMode.NonPersistent; |
| this.nmsRedelivered = true; |
| this.nmsType = "test type"; |
| this.nmsPriority = MsgPriority.High; |
| this.nmsTimestamp = DateTime.Now; |
| this.consumerIDs = new long[3]; |
| |
| for(int i = 0; i < this.consumerIDs.Length; i++) |
| { |
| this.consumerIDs[i] = i; |
| } |
| } |
| |
| [Test] |
| public void TestSetReadOnly() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.ReadOnlyProperties = true; |
| bool test = false; |
| |
| try |
| { |
| msg.Properties.SetInt("test", 1); |
| } |
| catch(MessageNotWriteableException) |
| { |
| test = true; |
| } |
| catch(NMSException) |
| { |
| test = false; |
| } |
| |
| Assert.IsTrue(test); |
| } |
| |
| [Test] |
| public void TestSetToForeignNMSID() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.NMSMessageId = "ID:EMS-SERVER.8B443C380083:429"; |
| } |
| |
| [Test] |
| public void TestEqualsObject() |
| { |
| ActiveMQMessage msg1 = new ActiveMQMessage(); |
| ActiveMQMessage msg2 = new ActiveMQMessage(); |
| msg1.NMSMessageId = this.nmsMessageID; |
| Assert.IsTrue(!msg1.Equals(msg2)); |
| msg2.NMSMessageId = this.nmsMessageID; |
| Assert.IsTrue(msg1.Equals(msg2)); |
| } |
| |
| [Test] |
| public void TestShallowCopy() |
| { |
| ActiveMQMessage msg1 = new ActiveMQMessage(); |
| msg1.NMSMessageId = nmsMessageID; |
| ActiveMQMessage msg2 = (ActiveMQMessage) msg1.Clone(); |
| Assert.IsTrue(msg1 != msg2 && msg1.Equals(msg2)); |
| } |
| |
| [Test] |
| public void TestCopy() |
| { |
| this.nmsMessageID = "ID:1141:45278:429"; |
| this.nmsCorrelationID = "testcorrelationid"; |
| this.nmsDestination = new ActiveMQTopic("test.topic"); |
| this.nmsReplyTo = new ActiveMQTempTopic("test.replyto.topic:001"); |
| this.nmsDeliveryMode = MsgDeliveryMode.NonPersistent; |
| this.nmsType = "test type"; |
| this.nmsPriority = MsgPriority.High; |
| this.nmsTimestamp = DateTime.Now; |
| |
| ActiveMQMessage msg1 = new ActiveMQMessage(); |
| msg1.NMSMessageId = this.nmsMessageID; |
| msg1.NMSCorrelationID = this.nmsCorrelationID; |
| msg1.FromDestination = this.nmsDestination; |
| msg1.NMSReplyTo = this.nmsReplyTo; |
| msg1.NMSDeliveryMode = this.nmsDeliveryMode; |
| msg1.NMSType = this.nmsType; |
| msg1.NMSPriority = this.nmsPriority; |
| msg1.NMSTimestamp = this.nmsTimestamp; |
| msg1.ReadOnlyProperties = true; |
| |
| ActiveMQMessage msg2 = msg1.Clone() as ActiveMQMessage; |
| |
| Assert.IsTrue(msg1.NMSMessageId.Equals(msg2.NMSMessageId)); |
| Assert.IsTrue(msg1.NMSCorrelationID.Equals(msg2.NMSCorrelationID)); |
| Assert.IsTrue(msg1.NMSDestination.Equals(msg2.NMSDestination)); |
| Assert.IsTrue(msg1.NMSReplyTo.Equals(msg2.NMSReplyTo)); |
| Assert.IsTrue(msg1.NMSDeliveryMode == msg2.NMSDeliveryMode); |
| Assert.IsTrue(msg1.NMSRedelivered == msg2.NMSRedelivered); |
| Assert.IsTrue(msg1.NMSType.Equals(msg2.NMSType)); |
| Assert.IsTrue(msg1.NMSPriority == msg2.NMSPriority); |
| Assert.IsTrue(msg1.NMSTimestamp == msg2.NMSTimestamp); |
| } |
| |
| [Test] |
| public void TestGetAndSetNMSCorrelationID() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.NMSCorrelationID = this.nmsCorrelationID; |
| Assert.IsTrue(msg.NMSCorrelationID.Equals(this.nmsCorrelationID)); |
| |
| // Check that we get the real value even if we go through the properties |
| string nmsCorrelationId = msg.Properties.GetString("NMSCorrelationID"); |
| Assert.IsTrue(nmsCorrelationId.Equals(this.nmsCorrelationID)); |
| |
| // We shouldn't get the expected value though if we use the inner property |
| // name from ActiveMQMessage |
| string correlationId = (string) msg.Properties["correlationId"]; |
| Assert.IsNullOrEmpty(correlationId); |
| msg.Properties["correlationId"] = "TEST"; |
| correlationId = (string) msg.Properties["correlationId"]; |
| Assert.IsFalse(msg.Properties["NMSCorrelationID"].Equals(msg.Properties["correlationId"])); |
| } |
| |
| [Test] |
| public void TestGetAndSetNMSReplyTo() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.NMSReplyTo = this.nmsReplyTo; |
| Assert.AreEqual(msg.NMSReplyTo, this.nmsReplyTo); |
| } |
| |
| [Test] |
| public void TestGetAndSetNMSDestination() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.FromDestination = this.nmsDestination; |
| Assert.AreEqual(msg.NMSDestination, this.nmsDestination); |
| } |
| |
| [Test] |
| public void TestGetAndSetNMSDeliveryMode() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.NMSDeliveryMode = this.nmsDeliveryMode; |
| Assert.IsTrue(msg.NMSDeliveryMode == this.nmsDeliveryMode); |
| } |
| |
| [Test] |
| public void TestGetAndSetMSRedelivered() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.RedeliveryCounter = 2; |
| Assert.IsTrue(msg.NMSRedelivered == this.nmsRedelivered); |
| } |
| |
| [Test] |
| public void TestGetAndSetNMSType() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.NMSType = this.nmsType; |
| Assert.AreEqual(msg.NMSType, this.nmsType); |
| } |
| |
| [Test] |
| public void TestGetAndSetNMSPriority() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.NMSPriority = this.nmsPriority; |
| Assert.IsTrue(msg.NMSPriority == this.nmsPriority); |
| } |
| |
| public void TestClearProperties() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.Properties.SetString("test", "test"); |
| msg.Content = new byte[1]; |
| msg.NMSMessageId = this.nmsMessageID; |
| msg.ClearProperties(); |
| Assert.IsNull(msg.Properties.GetString("test")); |
| Assert.IsNotNull(msg.NMSMessageId); |
| Assert.IsNotNull(msg.Content); |
| } |
| |
| [Test] |
| public void TestPropertyExists() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.Properties.SetString("test", "test"); |
| Assert.IsTrue(msg.Properties.Contains("test")); |
| } |
| |
| [Test] |
| public void TestGetBooleanProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "booleanProperty"; |
| msg.Properties.SetBool(name, true); |
| Assert.IsTrue(msg.Properties.GetBool(name)); |
| } |
| |
| [Test] |
| public void TestGetByteProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "byteProperty"; |
| msg.Properties.SetByte(name, (byte)1); |
| Assert.IsTrue(msg.Properties.GetByte(name) == 1); |
| } |
| |
| [Test] |
| public void TestGetShortProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "shortProperty"; |
| msg.Properties.SetShort(name, (short)1); |
| Assert.IsTrue(msg.Properties.GetShort(name) == 1); |
| } |
| |
| [Test] |
| public void TestGetIntProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "intProperty"; |
| msg.Properties.SetInt(name, 1); |
| Assert.IsTrue(msg.Properties.GetInt(name) == 1); |
| } |
| |
| [Test] |
| public void TestGetLongProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "longProperty"; |
| msg.Properties.SetLong(name, 1); |
| Assert.IsTrue(msg.Properties.GetLong(name) == 1); |
| } |
| |
| [Test] |
| public void TestGetFloatProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "floatProperty"; |
| msg.Properties.SetFloat(name, 1.3f); |
| Assert.IsTrue(msg.Properties.GetFloat(name) == 1.3f); |
| } |
| |
| [Test] |
| public void TestGetDoubleProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "doubleProperty"; |
| msg.Properties.SetDouble(name, 1.3d); |
| Assert.IsTrue(msg.Properties.GetDouble(name) == 1.3); |
| } |
| |
| [Test] |
| public void TestGetStringProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "stringProperty"; |
| msg.Properties.SetString(name, name); |
| Assert.IsTrue(msg.Properties.GetString(name).Equals(name)); |
| } |
| |
| [Test] |
| public void TestGetObjectProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "floatProperty"; |
| msg.Properties.SetFloat(name, 1.3f); |
| Assert.IsTrue(msg.Properties[name] is float); |
| Assert.IsTrue((float)msg.Properties[name] == 1.3f); |
| } |
| |
| [Test] |
| public void TestGetPropertyNames() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "floatProperty"; |
| msg.Properties.SetFloat(name, 1.3f); |
| |
| foreach(string key in msg.Properties.Keys) |
| { |
| Assert.IsTrue(key.Equals(name)); |
| } |
| } |
| |
| [Test] |
| public void TestSetObjectProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "property"; |
| |
| try |
| { |
| msg.Properties[name] = "string"; |
| msg.Properties[name] = (Byte) 1; |
| msg.Properties[name] = (Int16) 1; |
| msg.Properties[name] = (Int32) 1; |
| msg.Properties[name] = (Int64) 1; |
| msg.Properties[name] = (Single) 1.1f; |
| msg.Properties[name] = (Double) 1.1; |
| msg.Properties[name] = (Boolean) true; |
| msg.Properties[name] = null; |
| } |
| catch(MessageFormatException) |
| { |
| Assert.Fail("should accept object primitives and String"); |
| } |
| |
| try |
| { |
| msg.Properties[name] = new Object(); |
| Assert.Fail("should accept only object primitives and String"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties[name] = new StringBuilder(); |
| Assert.Fail("should accept only object primitives and String"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestConvertProperties() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| |
| msg.Properties["stringProperty"] = "string"; |
| msg.Properties["byteProperty"] = (Byte) 1; |
| msg.Properties["shortProperty"] = (Int16) 1; |
| msg.Properties["intProperty"] = (Int32) 1; |
| msg.Properties["longProperty"] = (Int64) 1; |
| msg.Properties["floatProperty"] = (Single) 1.1f; |
| msg.Properties["doubleProperty"] = (Double) 1.1; |
| msg.Properties["booleanProperty"] = (Boolean) true; |
| msg.Properties["nullProperty"] = null; |
| |
| msg.BeforeMarshall(new OpenWireFormat()); |
| |
| IPrimitiveMap properties = msg.Properties; |
| Assert.AreEqual(properties["stringProperty"], "string"); |
| Assert.AreEqual((byte)properties["byteProperty"], (byte) 1); |
| Assert.AreEqual((short)properties["shortProperty"], (short) 1); |
| Assert.AreEqual((int)properties["intProperty"], (int) 1); |
| Assert.AreEqual((long)properties["longProperty"], (long) 1); |
| Assert.AreEqual((float)properties["floatProperty"], 1.1f, 0); |
| Assert.AreEqual((double)properties["doubleProperty"], 1.1, 0); |
| Assert.AreEqual((bool)properties["booleanProperty"], true); |
| Assert.IsNull(properties["nullProperty"]); |
| |
| } |
| |
| [Test] |
| public void TestSetNullProperty() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| string name = "cheese"; |
| msg.Properties.SetString(name, "Cheddar"); |
| Assert.AreEqual("Cheddar", msg.Properties.GetString(name)); |
| |
| msg.Properties.SetString(name, null); |
| Assert.AreEqual(null, msg.Properties.GetString(name)); |
| } |
| |
| [Test] |
| public void TestSetNullPropertyName() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| |
| try |
| { |
| msg.Properties.SetString(null, "Cheese"); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(Exception) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestSetEmptyPropertyName() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| |
| try |
| { |
| msg.Properties.SetString("", "Cheese"); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(Exception) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestGetAndSetNMSXDeliveryCount() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| msg.Properties.SetInt("NMSXDeliveryCount", 1); |
| int count = msg.Properties.GetInt("NMSXDeliveryCount"); |
| Assert.IsTrue(count == 1, "expected delivery count = 1 - got: " + count); |
| } |
| |
| [Test] |
| public void TestClearBody() |
| { |
| ActiveMQBytesMessage message = new ActiveMQBytesMessage(); |
| message.ClearBody(); |
| Assert.IsFalse(message.ReadOnlyBody); |
| } |
| |
| [Test] |
| public void TestBooleanPropertyConversion() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| msg.Properties.SetBool(propertyName, true); |
| |
| Assert.AreEqual((bool)msg.Properties[propertyName], true); |
| Assert.IsTrue(msg.Properties.GetBool(propertyName)); |
| Assert.AreEqual(msg.Properties.GetString(propertyName), "True"); |
| try |
| { |
| msg.Properties.GetByte(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetShort(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetInt(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetLong(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetFloat(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetDouble(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestBytePropertyConversion() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| msg.Properties.SetByte(propertyName, (byte)1); |
| |
| Assert.AreEqual((byte)msg.Properties[propertyName], 1); |
| Assert.AreEqual(msg.Properties.GetByte(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetShort(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetInt(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetLong(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetString(propertyName), "1"); |
| |
| try |
| { |
| msg.Properties.GetBool(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetFloat(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try { |
| msg.Properties.GetDouble(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestShortPropertyConversion() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| msg.Properties.SetShort(propertyName, (short)1); |
| |
| Assert.AreEqual((short)msg.Properties[propertyName], 1); |
| Assert.AreEqual(msg.Properties.GetShort(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetInt(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetLong(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetString(propertyName), "1"); |
| |
| try |
| { |
| msg.Properties.GetBool(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetByte(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetFloat(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetDouble(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestIntPropertyConversion() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| msg.Properties.SetInt(propertyName, (int)1); |
| |
| Assert.AreEqual((int)msg.Properties[propertyName], 1); |
| Assert.AreEqual(msg.Properties.GetInt(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetLong(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetString(propertyName), "1"); |
| |
| try |
| { |
| msg.Properties.GetBool(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetByte(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetShort(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetFloat(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetDouble(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestLongPropertyConversion() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| msg.Properties.SetLong(propertyName, 1); |
| |
| Assert.AreEqual((long)msg.Properties[propertyName], 1); |
| Assert.AreEqual(msg.Properties.GetLong(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetString(propertyName), "1"); |
| |
| try |
| { |
| msg.Properties.GetBool(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetByte(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetShort(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetInt(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetFloat(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetDouble(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestFloatPropertyConversion() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| float floatValue = (float)1.5; |
| msg.Properties.SetFloat(propertyName, floatValue); |
| Assert.AreEqual((float)msg.Properties[propertyName], floatValue, 0); |
| Assert.AreEqual(msg.Properties.GetFloat(propertyName), floatValue, 0); |
| Assert.AreEqual(msg.Properties.GetDouble(propertyName), floatValue, 0); |
| Assert.AreEqual(msg.Properties.GetString(propertyName), floatValue.ToString()); |
| |
| try |
| { |
| msg.Properties.GetBool(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetByte(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetShort(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetInt(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetLong(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestDoublePropertyConversion() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| Double doubleValue = 1.5; |
| msg.Properties.SetDouble(propertyName, doubleValue); |
| Assert.AreEqual((double)msg.Properties[propertyName], doubleValue, 0); |
| Assert.AreEqual(msg.Properties.GetDouble(propertyName), doubleValue, 0); |
| Assert.AreEqual(msg.Properties.GetString(propertyName), doubleValue.ToString()); |
| |
| try |
| { |
| msg.Properties.GetBool(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetByte(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetShort(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetInt(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetLong(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetFloat(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| } |
| |
| [Test] |
| public void TestStringPropertyConversion() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| String stringValue = "True"; |
| msg.Properties.SetString(propertyName, stringValue); |
| Assert.AreEqual(msg.Properties.GetString(propertyName), stringValue); |
| Assert.AreEqual((string)msg.Properties[propertyName], stringValue); |
| Assert.AreEqual(msg.Properties.GetBool(propertyName), true); |
| |
| stringValue = "1"; |
| msg.Properties.SetString(propertyName, stringValue); |
| Assert.AreEqual(msg.Properties.GetByte(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetShort(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetInt(propertyName), 1); |
| Assert.AreEqual(msg.Properties.GetLong(propertyName), 1); |
| |
| Double doubleValue = 1.5; |
| stringValue = doubleValue.ToString(); |
| msg.Properties.SetString(propertyName, stringValue); |
| Assert.AreEqual(msg.Properties.GetFloat(propertyName), 1.5, 0); |
| Assert.AreEqual(msg.Properties.GetDouble(propertyName), 1.5, 0); |
| |
| stringValue = "bad"; |
| msg.Properties.SetString(propertyName, stringValue); |
| |
| try |
| { |
| msg.Properties.GetByte(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetShort(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetInt(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetLong(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetFloat(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.GetDouble(propertyName); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageFormatException) |
| { |
| } |
| |
| Assert.IsFalse(msg.Properties.GetBool(propertyName)); |
| } |
| |
| [Test] |
| public void TestReadOnlyProperties() |
| { |
| ActiveMQMessage msg = new ActiveMQMessage(); |
| String propertyName = "property"; |
| msg.ReadOnlyProperties = true; |
| |
| try |
| { |
| msg.Properties[propertyName] = new Object(); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.SetString(propertyName, "test"); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.SetBool(propertyName, true); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.SetByte(propertyName, (byte)1); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) { |
| } |
| |
| try |
| { |
| msg.Properties.SetShort(propertyName, (short)1); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.SetInt(propertyName, 1); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.SetLong(propertyName, 1); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.SetFloat(propertyName, (float)1.5); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) |
| { |
| } |
| |
| try |
| { |
| msg.Properties.SetDouble(propertyName, 1.5); |
| Assert.Fail("Should have thrown exception"); |
| } |
| catch(MessageNotWriteableException) |
| { |
| } |
| } |
| |
| // public void TestIsExpired() { |
| // ActiveMQMessage msg = new ActiveMQMessage(); |
| // msg.NMSExpiration(System.currentTimeMillis() - 1); |
| // Assert.IsTrue(msg.isExpired()); |
| // msg.NMSExpiration(System.currentTimeMillis() + 10000); |
| // Assert.IsFalse(msg.isExpired()); |
| // } |
| } |
| } |