public void TestBytesConversion()
{
ActiveMQMapMessage msg = new ActiveMQMapMessage();
msg.Body.SetBool("boolean", true);
msg.Body.SetByte("byte", (byte)1);
msg.Body["bytes"] = new byte[1];
msg.Body.SetChar("char", 'a');
msg.Body.SetDouble("double", 1.5);
msg.Body.SetFloat("float", 1.5f);
msg.Body.SetInt("int", 1);
msg.Body.SetLong("long", 1);
msg.Body["object"] = "stringObj";
msg.Body.SetShort("short", (short)1);
msg.Body.SetString("string", "string");
// Test with a 1Meg String
StringBuilder bigSB = new StringBuilder(1024 * 1024);
for(int i = 0; i < 1024 * 1024; i++)
{
bigSB.Append((char)'a' + i % 26);
}
String bigString = bigSB.ToString();
msg.Body.SetString("bigString", bigString);
msg = (ActiveMQMapMessage)msg.Clone();
Assert.AreEqual(msg.Body.GetBool("boolean"), true);
Assert.AreEqual(msg.Body.GetByte("byte"), (byte)1);
Assert.AreEqual((msg.Body["bytes"] as byte[]).Length, 1);
Assert.AreEqual(msg.Body.GetChar("char"), 'a');
Assert.AreEqual(msg.Body.GetDouble("double"), 1.5, 0);
Assert.AreEqual(msg.Body.GetFloat("float"), 1.5f, 0);
Assert.AreEqual(msg.Body.GetInt("int"), 1);
Assert.AreEqual(msg.Body.GetLong("long"), 1);
Assert.AreEqual(msg.Body["object"], "stringObj");
Assert.AreEqual(msg.Body.GetShort("short"), (short)1);
Assert.AreEqual(msg.Body.GetString("string"), "string");
Assert.AreEqual(msg.Body.GetString("bigString"), bigString);
}