public void TestGetObject()
{
ActiveMQMapMessage msg = new ActiveMQMapMessage();
Boolean booleanValue = true;
Byte byteValue = Byte.Parse("1");
byte[] bytesValue = new byte[3];
Char charValue = (Char) 'a';
Double doubleValue = Double.Parse("1.5", CultureInfo.InvariantCulture);
Single floatValue = Single.Parse("1.5", CultureInfo.InvariantCulture);
Int32 intValue = Int32.Parse("1");
Int64 longValue = Int64.Parse("1");
Int16 shortValue = Int16.Parse("1");
String stringValue = "string";
try
{
msg.Body["boolean"] = booleanValue;
msg.Body["byte"] = byteValue;
msg.Body["bytes"] = bytesValue;
msg.Body["char"] = charValue;
msg.Body["double"] = doubleValue;
msg.Body["float"] = floatValue;
msg.Body["int"] = intValue;
msg.Body["long"] = longValue;
msg.Body["short"] = shortValue;
msg.Body["string"] = stringValue;
}
catch(MessageFormatException)
{
Assert.Fail("object formats should be correct");
}
msg = (ActiveMQMapMessage)msg.Clone();
Assert.IsTrue(msg.Body["boolean"] is Boolean);
Assert.AreEqual(msg.Body["boolean"], booleanValue);
Assert.AreEqual(msg.Body.GetBool("boolean"), booleanValue);
Assert.IsTrue(msg.Body["byte"] is Byte);
Assert.AreEqual(msg.Body["byte"], byteValue);
Assert.AreEqual(msg.Body.GetByte("byte"), byteValue);
Assert.IsTrue(msg.Body["bytes"] is byte[]);
Assert.AreEqual(((byte[])msg.Body["bytes"]).Length, bytesValue.Length);
Assert.AreEqual((msg.Body["bytes"] as byte[]).Length, bytesValue.Length);
Assert.IsTrue(msg.Body["char"] is Char);
Assert.AreEqual(msg.Body["char"], charValue);
Assert.AreEqual(msg.Body.GetChar("char"), charValue);
Assert.IsTrue(msg.Body["double"] is Double);
Assert.AreEqual(msg.Body["double"], doubleValue);
Assert.AreEqual(msg.Body.GetDouble("double"), doubleValue, 0);
Assert.IsTrue(msg.Body["float"] is Single);
Assert.AreEqual(msg.Body["float"], floatValue);
Assert.AreEqual(msg.Body.GetFloat("float"), floatValue, 0);
Assert.IsTrue(msg.Body["int"] is Int32);
Assert.AreEqual(msg.Body["int"], intValue);
Assert.AreEqual(msg.Body.GetInt("int"), intValue);
Assert.IsTrue(msg.Body["long"] is Int64);
Assert.AreEqual(msg.Body["long"], longValue);
Assert.AreEqual(msg.Body.GetLong("long"), longValue);
Assert.IsTrue(msg.Body["short"] is Int16);
Assert.AreEqual(msg.Body["short"], shortValue);
Assert.AreEqual(msg.Body.GetShort("short"), shortValue);
Assert.IsTrue(msg.Body["string"] is String);
Assert.AreEqual(msg.Body["string"], stringValue);
Assert.AreEqual(msg.Body.GetString("string"), stringValue);
msg.ClearBody();
try
{
msg.Body["object"] = new Object();
Assert.Fail("should have thrown exception");
}
catch(MessageFormatException)
{
}
}