public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType != JsonToken.Integer) throw new InvalidCastException("TokenType must be of type Integer."); var time = (long) reader.Value; var date = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(time); return new DateTimeOffset(date); }
public void ReadJson_ThrowsInvalidCastException(string data) { var converter = new EpochTimeConverter(); var reader = new JsonTextReader(new StringReader(data)); reader.Read(); var serializer = new JsonSerializer(); var exception = Record.Exception(() => converter.ReadJson(reader, typeof(DateTimeOffset), null, serializer)); Assert.NotNull(exception); Assert.IsType<InvalidCastException>(exception); }