public void Serialization_LocalTime_ConvertsToUtc() { Skip.If(TimeZoneInfo.Local.BaseUtcOffset == TimeSpan.Zero, "Cannot test local time conversion from a system in UTC time zone"); // Arrange var localTime = DateTime.Now; Assert.Equal(DateTimeKind.Local, localTime.Kind); var obj = new NonNullablePoco { Value = localTime }; // Act var json = JsonConvert.SerializeObject(obj); var obj2 = JsonConvert.DeserializeObject <NonNullablePoco>(json); // Assert Assert.Equal(DateTimeKind.Utc, obj2.Value.Kind); // There will a slight submillisecond difference due to rounding // so for the test just make sure the difference is less than half a millisecond Assert.Equal(0, Math.Round((localTime - obj2.Value.ToLocalTime()).TotalMilliseconds, MidpointRounding.AwayFromZero)); }
public void Serialization_NonNullable_Serializes() { // Arrange var obj = new NonNullablePoco { Value = TestTime }; // Act var json = JsonConvert.SerializeObject(obj); // Assert var expected = $@"{{""value"":{TestUnixMilliseconds}}}"; Assert.Equal(expected, json); }