blob: 79281bff2399a852fc92a40b24b6a34f3fdae608 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor licensete 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 NUnit.Framework;
using System;
using System.Text;
using System.Collections;
using Apache.NMS.Util;
using Apache.NMS.Amqp;
namespace Apache.NMS.Amqp.Test.Commands
{
[TestFixture]
public class MessageTest
{
private string nmsMessageID;
private string nmsCorrelationID;
private Topic nmsDestination;
private Topic 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 Topic("TEST.Message");
this.nmsReplyTo = new Topic("TEST.Message.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 TestSetToForeignNMSID()
{
TextMessage msg = new TextMessage();
msg.NMSMessageId = "SomeString";
}
[Test]
public void TestShallowCopy()
{
TextMessage msg1 = new TextMessage();
msg1.NMSMessageId = nmsMessageID;
TextMessage msg2 = (TextMessage)msg1.Clone();
Assert.IsTrue(msg1 != msg2);
Assert.IsTrue(msg1.Equals(msg2));
msg2.NMSPriority = MsgPriority.Highest;
Assert.IsFalse(msg1.Equals(msg2));
}
[Test]
public void TestCopy()
{
this.nmsMessageID = "ID:1141:45278:429";
this.nmsCorrelationID = "testcorrelationid";
this.nmsDestination = new Topic("test.topic");
this.nmsReplyTo = new Topic("test.replyto.topic:001");
this.nmsDeliveryMode = MsgDeliveryMode.NonPersistent;
this.nmsType = "test type";
this.nmsPriority = MsgPriority.High;
this.nmsTimestamp = DateTime.Now;
TextMessage msg1 = new TextMessage();
msg1.NMSMessageId = this.nmsMessageID;
msg1.NMSCorrelationID = this.nmsCorrelationID;
msg1.NMSDestination = this.nmsDestination;
msg1.NMSReplyTo = this.nmsReplyTo;
msg1.NMSDeliveryMode = this.nmsDeliveryMode;
msg1.NMSType = this.nmsType;
msg1.NMSPriority = this.nmsPriority;
msg1.NMSTimestamp = this.nmsTimestamp;
TextMessage msg2 = msg1;
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()
{
TextMessage msg = new TextMessage();
msg.NMSCorrelationID = this.nmsCorrelationID;
Assert.IsTrue(msg.NMSCorrelationID.Equals(this.nmsCorrelationID));
}
[Test]
public void TestGetAndSetNMSReplyTo()
{
TextMessage msg = new TextMessage();
msg.NMSReplyTo = this.nmsReplyTo;
Assert.AreEqual(msg.NMSReplyTo, this.nmsReplyTo);
}
[Test]
public void TestGetAndSetNMSDeliveryMode()
{
TextMessage msg = new TextMessage();
msg.NMSDeliveryMode = this.nmsDeliveryMode;
Assert.IsTrue(msg.NMSDeliveryMode == this.nmsDeliveryMode);
}
[Test]
public void TestGetAndSetNMSType()
{
TextMessage msg = new TextMessage();
msg.NMSType = this.nmsType;
Assert.AreEqual(msg.NMSType, this.nmsType);
}
[Test]
public void TestGetAndSetNMSPriority()
{
TextMessage msg = new TextMessage();
msg.NMSPriority = this.nmsPriority;
Assert.IsTrue(msg.NMSPriority == this.nmsPriority);
}
public void TestClearProperties()
{
TextMessage msg = new TextMessage();
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()
{
TextMessage msg = new TextMessage();
msg.Properties.SetString("test", "test");
Assert.IsTrue(msg.Properties.Contains("test"));
}
[Test]
public void TestGetBooleanProperty()
{
TextMessage msg = new TextMessage();
string name = "booleanProperty";
msg.Properties.SetBool(name, true);
Assert.IsTrue(msg.Properties.GetBool(name));
}
[Test]
public void TestGetByteProperty()
{
TextMessage msg = new TextMessage();
string name = "byteProperty";
msg.Properties.SetByte(name, (byte)1);
Assert.IsTrue(msg.Properties.GetByte(name) == 1);
}
[Test]
public void TestGetShortProperty()
{
TextMessage msg = new TextMessage();
string name = "shortProperty";
msg.Properties.SetShort(name, (short)1);
Assert.IsTrue(msg.Properties.GetShort(name) == 1);
}
[Test]
public void TestGetIntProperty()
{
TextMessage msg = new TextMessage();
string name = "intProperty";
msg.Properties.SetInt(name, 1);
Assert.IsTrue(msg.Properties.GetInt(name) == 1);
}
[Test]
public void TestGetLongProperty()
{
TextMessage msg = new TextMessage();
string name = "longProperty";
msg.Properties.SetLong(name, 1);
Assert.IsTrue(msg.Properties.GetLong(name) == 1);
}
[Test]
public void TestGetFloatProperty()
{
TextMessage msg = new TextMessage();
string name = "floatProperty";
msg.Properties.SetFloat(name, 1.3f);
Assert.IsTrue(msg.Properties.GetFloat(name) == 1.3f);
}
[Test]
public void TestGetDoubleProperty()
{
TextMessage msg = new TextMessage();
string name = "doubleProperty";
msg.Properties.SetDouble(name, 1.3d);
Assert.IsTrue(msg.Properties.GetDouble(name) == 1.3);
}
[Test]
public void TestGetStringProperty()
{
TextMessage msg = new TextMessage();
string name = "stringProperty";
msg.Properties.SetString(name, name);
Assert.IsTrue(msg.Properties.GetString(name).Equals(name));
}
[Test]
public void TestGetObjectProperty()
{
TextMessage msg = new TextMessage();
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()
{
TextMessage msg = new TextMessage();
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()
{
TextMessage msg = new TextMessage();
string name = "property";
try
{
msg.Properties[name] = "string";
msg.Properties[name] = (Char) 1;
msg.Properties[name] = (Int16) 1;
msg.Properties[name] = (Int32) 1;
msg.Properties[name] = (Int64) 1;
msg.Properties[name] = (Byte)1;
msg.Properties[name] = (UInt16)1;
msg.Properties[name] = (UInt32)1;
msg.Properties[name] = (UInt64)1;
msg.Properties[name] = (Single)1.1f;
msg.Properties[name] = (Double) 1.1;
msg.Properties[name] = (Boolean) true;
msg.Properties[name] = null;
}
catch(NMSException)
{
Assert.Fail("should accept object primitives and String");
}
try
{
msg.Properties[name] = new Object();
Assert.Fail("should accept only object primitives and String");
}
catch(NMSException)
{
}
try
{
msg.Properties[name] = new StringBuilder();
Assert.Fail("should accept only object primitives and String");
}
catch(NMSException)
{
}
}
[Test]
public void TestConvertProperties()
{
TextMessage msg = new TextMessage();
// Set/verify a property using each supported AMQP data type
msg.Properties["stringProperty"] = "string";
msg.Properties["booleanProperty"] = (Boolean)true;
msg.Properties["charProperty"] = (Char)'h';
msg.Properties["shortProperty"] = (Int16) 2;
msg.Properties["intProperty"] = (Int32) 3;
msg.Properties["longProperty"] = (Int64) 4;
msg.Properties["byteProperty"] = (Byte)5;
msg.Properties["ushortProperty"] = (UInt16)6;
msg.Properties["uintProperty"] = (UInt32)7;
msg.Properties["ulongProperty"] = (UInt64)8;
msg.Properties["floatProperty"] = (Single)9.9f;
msg.Properties["doubleProperty"] = (Double) 10.1;
msg.Properties["nullProperty"] = null;
msg.Properties["guidProperty"] = new Guid("000102030405060708090a0b0c0d0e0f");
IPrimitiveMap properties = msg.Properties;
Assert.AreEqual(properties["stringProperty"], "string");
Assert.AreEqual(properties["booleanProperty"], true);
Assert.AreEqual((Char)properties["charProperty"], (Char)'h');
Assert.AreEqual(properties["shortProperty"], (short) 2);
Assert.AreEqual(properties["intProperty"], (int) 3);
Assert.AreEqual(properties["longProperty"], (long) 4);
Assert.AreEqual(properties["byteProperty"], (byte)5);
Assert.AreEqual(properties["ushortProperty"], (UInt16)6);
Assert.AreEqual(properties["uintProperty"], (int)7);
Assert.AreEqual(properties["ulongProperty"], (long)8);
Assert.AreEqual(properties["floatProperty"], 9.9f);
Assert.AreEqual(properties["doubleProperty"], 10.1);
Assert.IsNull(properties["nullProperty"]);
Guid rxGuid = (Guid)properties["guidProperty"];
Assert.AreEqual(rxGuid.ToString(), "00010203-0405-0607-0809-0a0b0c0d0e0f");
}
[Test]
public void TestSetNullProperty()
{
TextMessage msg = new TextMessage();
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()
{
TextMessage msg = new TextMessage();
try
{
msg.Properties.SetString(null, "Cheese");
Assert.Fail("Should have thrown exception");
}
catch(Exception)
{
}
}
[Test]
public void TestSetEmptyPropertyName()
{
TextMessage msg = new TextMessage();
try
{
msg.Properties.SetString("", "Cheese");
Assert.Fail("Should have thrown exception");
}
catch(Exception)
{
}
}
[Test]
public void TestGetAndSetNMSXDeliveryCount()
{
TextMessage msg = new TextMessage();
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()
{
BytesMessage message = new BytesMessage();
message.ClearBody();
Assert.IsFalse(message.ReadOnlyBody);
}
//
// Helper functions for TestPropertyConversionXxx tests.
// Demonstrate properties are inaccessible using various methods.
// Get the named property from the map.
// Assert that the Get function throws; display message on failure.
//
public void TestGetBoolThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetBool(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetByteThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetByte(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetBytesThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetBytes(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetCharThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetChar(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetDictionaryThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetDictionary(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetDoubleThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetDouble(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetFloatThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetFloat(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetIntThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetInt(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetListThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetList(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetLongThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetLong(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetShortThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetShort(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
public void TestGetStringThrows(IPrimitiveMap map, string name, string message)
{
try
{
map.GetString(name);
Assert.Fail(message);
}
catch (NMSException)
{
}
}
[Test]
public void TestPropertyConversionBoolean()
{
TextMessage msg = new TextMessage();
String propertyName = "property";
msg.Properties.SetBool(propertyName, true);
Assert.AreEqual(msg.Properties[propertyName], true);
Assert.IsTrue(msg.Properties.GetBool(propertyName));
Assert.AreEqual(msg.Properties[propertyName].ToString(), "True");
//TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
}
[Test]
public void TestPropertyConversionByte()
{
TextMessage msg = new TextMessage();
String propertyName = "property";
msg.Properties.SetByte(propertyName, (byte)1);
Assert.AreEqual(msg.Properties[propertyName], 1);
Assert.AreEqual(msg.Properties.GetByte(propertyName), 1);
Assert.AreEqual(msg.Properties[propertyName].ToString(), "1");
TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
//TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
}
[Test]
public void TestPropertyConversionShort()
{
TextMessage msg = new TextMessage();
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[propertyName].ToString(), "1");
TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
//TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
}
[Test]
public void TestPropertyConversionInt()
{
TextMessage msg = new TextMessage();
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[propertyName].ToString(), "1");
TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
//TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
}
[Test]
public void TestPropertyConversionLong()
{
TextMessage msg = new TextMessage();
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[propertyName].ToString(), "1");
TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
//TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
}
[Test]
public void TestPropertyConversionFloat()
{
TextMessage msg = new TextMessage();
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[propertyName].ToString(), floatValue.ToString());
TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
//TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
}
[Test]
public void TestPropertyConversionDouble()
{
TextMessage msg = new TextMessage();
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[propertyName].ToString(), doubleValue.ToString());
TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
//TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
}
[Test]
public void TestPropertyConversionString()
{
TextMessage msg = new TextMessage();
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);
stringValue = "1";
msg.Properties.SetString(propertyName, stringValue);
// TODO:
//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);
// TODO:
//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);
TestGetBoolThrows(msg.Properties, propertyName, "GetBool should have thrown");
TestGetByteThrows(msg.Properties, propertyName, "GetByte should have thrown");
TestGetBytesThrows(msg.Properties, propertyName, "GetBytes should have thrown");
TestGetCharThrows(msg.Properties, propertyName, "GetChar should have thrown");
TestGetDictionaryThrows(msg.Properties, propertyName, "GetDictionary should have thrown");
TestGetDoubleThrows(msg.Properties, propertyName, "GetDouble should have thrown");
TestGetFloatThrows(msg.Properties, propertyName, "GetFloat should have thrown");
TestGetIntThrows(msg.Properties, propertyName, "GetInt should have thrown");
TestGetListThrows(msg.Properties, propertyName, "GetList should have thrown");
TestGetLongThrows(msg.Properties, propertyName, "GetLong should have thrown");
TestGetShortThrows(msg.Properties, propertyName, "GetShort should have thrown");
//TestGetStringThrows(msg.Properties, propertyName, "GetString should have thrown");
}
}
}