public void CheckDateTime() { MemoryStream buffer = new MemoryStream(); IFieldWriter writer = new FieldWriter(buffer); IFieldReader reader = new FieldReader(buffer); DateTime referenceTime = DateTime.Now; //we convert to UTC during serialization, we want local time. buffer.Position = 0; writer.Write(referenceTime); Assert.AreEqual(12, buffer.Position); writer.Write(referenceTime.AddTicks(1)); Assert.AreEqual(16, buffer.Position); writer.Write(referenceTime.AddMilliseconds(50)); Assert.AreEqual(22, buffer.Position); writer.Write(referenceTime.AddHours(1)); Assert.AreEqual(31, buffer.Position); writer.Write(referenceTime.AddDays(1)); Assert.AreEqual(40, buffer.Position); buffer.Position = 0; Assert.AreEqual(referenceTime, reader.ReadDateTime()); Assert.AreEqual(referenceTime.AddTicks(1), reader.ReadDateTime()); Assert.AreEqual(referenceTime.AddMilliseconds(50), reader.ReadDateTime()); Assert.AreEqual(referenceTime.AddHours(1), reader.ReadDateTime()); Assert.AreEqual(referenceTime.AddDays(1), reader.ReadDateTime()); }
public void CheckDateTime() { MemoryStream buffer = new MemoryStream(); IFieldWriter writer = new FieldWriter(buffer); IFieldReader reader = new FieldReader(buffer); var referenceTime = new DateTime(1973, 6, 25, 8, 30, 12, DateTimeKind.Utc); //UTC to ensure tests are portable buffer.Position = 0; writer.Write(referenceTime); Assert.AreEqual(11, buffer.Position, "Serialized value isn't the expected length. Position is: {1}, expected {0}.\r\nSerialized Value: {2}", buffer.Position, 11, buffer.ToArray().ToDisplayString()); writer.Write(referenceTime.AddTicks(1)); Assert.AreEqual(14, buffer.Position); writer.Write(referenceTime.AddMilliseconds(50)); Assert.AreEqual(19, buffer.Position); writer.Write(referenceTime.AddHours(1)); Assert.AreEqual(27, buffer.Position); writer.Write(referenceTime.AddDays(1)); Assert.AreEqual(35, buffer.Position); buffer.Position = 0; Assert.AreEqual(referenceTime, reader.ReadDateTime()); Assert.AreEqual(referenceTime.AddTicks(1), reader.ReadDateTime()); Assert.AreEqual(referenceTime.AddMilliseconds(50), reader.ReadDateTime()); Assert.AreEqual(referenceTime.AddHours(1), reader.ReadDateTime()); Assert.AreEqual(referenceTime.AddDays(1), reader.ReadDateTime()); }