public void DateParseHandling() { string json = @"[""1970-01-01T00:00:00Z"",""\/Date(0)\/""]"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); reader.DateParseHandling = Json.DateParseHandling.DateTime; Assert.True(reader.Read()); Assert.True(reader.Read()); Assert.Equal(new DateTime(DateTimeUtils.InitialJavaScriptDateTicks, DateTimeKind.Utc), reader.Value); Assert.Equal(typeof(DateTime), reader.ValueType); Assert.True(reader.Read()); Assert.Equal(new DateTime(DateTimeUtils.InitialJavaScriptDateTicks, DateTimeKind.Utc), reader.Value); Assert.Equal(typeof(DateTime), reader.ValueType); Assert.True(reader.Read()); #if !NET20 reader = new JsonTextReader(new StringReader(json)); reader.DateParseHandling = Json.DateParseHandling.DateTimeOffset; Assert.True(reader.Read()); Assert.True(reader.Read()); Assert.Equal(new DateTimeOffset(DateTimeUtils.InitialJavaScriptDateTicks, TimeSpan.Zero), reader.Value); Assert.Equal(typeof(DateTimeOffset), reader.ValueType); Assert.True(reader.Read()); Assert.Equal(new DateTimeOffset(DateTimeUtils.InitialJavaScriptDateTicks, TimeSpan.Zero), reader.Value); Assert.Equal(typeof(DateTimeOffset), reader.ValueType); Assert.True(reader.Read()); #endif reader = new JsonTextReader(new StringReader(json)); reader.DateParseHandling = Json.DateParseHandling.None; Assert.True(reader.Read()); Assert.True(reader.Read()); Assert.Equal(@"1970-01-01T00:00:00Z", reader.Value); Assert.Equal(typeof(string), reader.ValueType); Assert.True(reader.Read()); Assert.Equal(@"/Date(0)/", reader.Value); Assert.Equal(typeof(string), reader.ValueType); Assert.True(reader.Read()); #if !NET20 reader = new JsonTextReader(new StringReader(json)); reader.DateParseHandling = Json.DateParseHandling.DateTime; Assert.True(reader.Read()); reader.ReadAsDateTimeOffset(); Assert.Equal(new DateTimeOffset(DateTimeUtils.InitialJavaScriptDateTicks, TimeSpan.Zero), reader.Value); Assert.Equal(typeof(DateTimeOffset), reader.ValueType); reader.ReadAsDateTimeOffset(); Assert.Equal(new DateTimeOffset(DateTimeUtils.InitialJavaScriptDateTicks, TimeSpan.Zero), reader.Value); Assert.Equal(typeof(DateTimeOffset), reader.ValueType); Assert.True(reader.Read()); reader = new JsonTextReader(new StringReader(json)); reader.DateParseHandling = Json.DateParseHandling.DateTimeOffset; Assert.True(reader.Read()); reader.ReadAsDateTime(); Assert.Equal(new DateTime(DateTimeUtils.InitialJavaScriptDateTicks, DateTimeKind.Utc), reader.Value); Assert.Equal(typeof(DateTime), reader.ValueType); reader.ReadAsDateTime(); Assert.Equal(new DateTime(DateTimeUtils.InitialJavaScriptDateTicks, DateTimeKind.Utc), reader.Value); Assert.Equal(typeof(DateTime), reader.ValueType); Assert.True(reader.Read()); #endif }
public void ReadAsDateTimeOffsetIsoDate() { string json = @"{""Offset"":""2011-08-01T21:25Z""}"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); Assert.True(reader.Read()); Assert.Equal(JsonToken.StartObject, reader.TokenType); Assert.True(reader.Read()); Assert.Equal(JsonToken.PropertyName, reader.TokenType); reader.ReadAsDateTimeOffset(); Assert.Equal(JsonToken.Date, reader.TokenType); Assert.Equal(typeof(DateTimeOffset), reader.ValueType); Assert.Equal(new DateTimeOffset(new DateTime(2011, 8, 1, 21, 25, 0, DateTimeKind.Utc), TimeSpan.Zero), reader.Value); Assert.True(reader.Read()); Assert.Equal(JsonToken.EndObject, reader.TokenType); }
public void ReadAsDateTimeOffsetNewZealandDate() { string json = @"{""Offset"":""30/1/2011""}"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); reader.Culture = new CultureInfo("en-NZ"); Assert.True(reader.Read()); Assert.Equal(JsonToken.StartObject, reader.TokenType); Assert.True(reader.Read()); Assert.Equal(JsonToken.PropertyName, reader.TokenType); reader.ReadAsDateTimeOffset(); Assert.Equal(JsonToken.Date, reader.TokenType); Assert.Equal(typeof(DateTimeOffset), reader.ValueType); DateTimeOffset dt = (DateTimeOffset)reader.Value; Assert.Equal(new DateTime(2011, 1, 30, 0, 0, 0, DateTimeKind.Unspecified), dt.DateTime); Assert.True(reader.Read()); Assert.Equal(JsonToken.EndObject, reader.TokenType); }
public void ReadAsDateTimeOffsetWithMinutes() { string json = @"{""Offset"":""\/Date(946708260000-0631)\/""}"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); Assert.True(reader.Read()); Assert.Equal(JsonToken.StartObject, reader.TokenType); Assert.True(reader.Read()); Assert.Equal(JsonToken.PropertyName, reader.TokenType); reader.ReadAsDateTimeOffset(); Assert.Equal(JsonToken.Date, reader.TokenType); Assert.Equal(typeof(DateTimeOffset), reader.ValueType); Assert.Equal(new DateTimeOffset(new DateTime(2000, 1, 1), TimeSpan.FromHours(-6).Add(TimeSpan.FromMinutes(-31))), reader.Value); Assert.True(reader.Read()); Assert.Equal(JsonToken.EndObject, reader.TokenType); }
public void ReadAsDateTimeOffsetHoursOnly() { string json = "{\"Offset\":\"\\/Date(946663200000+06)\\/\"}"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); Assert.True(reader.Read()); Assert.Equal(JsonToken.StartObject, reader.TokenType); Assert.True(reader.Read()); Assert.Equal(JsonToken.PropertyName, reader.TokenType); reader.ReadAsDateTimeOffset(); Assert.Equal(JsonToken.Date, reader.TokenType); Assert.Equal(typeof(DateTimeOffset), reader.ValueType); Assert.Equal(new DateTimeOffset(new DateTime(2000, 1, 1), TimeSpan.FromHours(6)), reader.Value); Assert.True(reader.Read()); Assert.Equal(JsonToken.EndObject, reader.TokenType); }
public void ReadAsDateTimeOffsetBadString() { string json = @"{""Offset"":""blablahbla""}"; JsonTextReader reader = new JsonTextReader(new StringReader(json)); Assert.True(reader.Read()); Assert.Equal(JsonToken.StartObject, reader.TokenType); Assert.True(reader.Read()); Assert.Equal(JsonToken.PropertyName, reader.TokenType); AssertException.Throws<JsonReaderException>(() => { reader.ReadAsDateTimeOffset(); }, "Could not convert string to DateTimeOffset: blablahbla. Path 'Offset', line 1, position 22."); }
public void ReadAsDateTimeOffsetBadContent() { JsonTextReader reader = new JsonTextReader(new StringReader(@"new Date()")); AssertException.Throws<JsonReaderException>(() => { reader.ReadAsDateTimeOffset(); }, "Error reading date. Unexpected token: StartConstructor. Path '', line 1, position 9."); }
public void ReadAsDateTimeOffsetNoContent() { JsonTextReader reader = new JsonTextReader(new StringReader(@"")); Assert.Null(reader.ReadAsDateTimeOffset()); Assert.Equal(JsonToken.None, reader.TokenType); }