public void TestDateTimeDeserialization()
{
string raw = "datetime:1296279468000t,date:1306281600000a,embedded:(datetime:1296279468000t,date:1306281600000a),array:[1296279468000t,1306281600000a]";
ORecord record = new ORecord(ORecordType.Document, 0, UTF8Encoding.UTF8.GetBytes(raw));
Assert.IsTrue(record.Fields["datetime"].GetType() == typeof(DateTime));
Assert.IsTrue((DateTime)record.Fields["datetime"] == new DateTime(2011, 1, 29, 5, 37, 48));
Assert.IsTrue(record.Fields["date"].GetType() == typeof(DateTime));
Assert.IsTrue((DateTime)record.Fields["date"] == new DateTime(2011, 5, 25, 0, 0, 0));
Dictionary<string, object> embeddedDates = (Dictionary<string, object>)record.Fields["embedded"];
Assert.IsTrue(embeddedDates["datetime"].GetType() == typeof(DateTime));
Assert.IsTrue((DateTime)embeddedDates["datetime"] == new DateTime(2011, 1, 29, 5, 37, 48));
Assert.IsTrue(embeddedDates["date"].GetType() == typeof(DateTime));
Assert.IsTrue((DateTime)embeddedDates["date"] == new DateTime(2011, 5, 25, 0, 0, 0));
List<object> arrayDates = (List<object>)record.Fields["array"];
Assert.IsTrue(arrayDates.First().GetType() == typeof(DateTime));
Assert.IsTrue((DateTime)arrayDates.First() == new DateTime(2011, 1, 29, 5, 37, 48));
Assert.IsTrue(arrayDates.Last().GetType() == typeof(DateTime));
Assert.IsTrue((DateTime)arrayDates.Last() == new DateTime(2011, 5, 25, 0, 0, 0));
}