-Updated to NuGet 1.7
-Fixed JsonWriters not using DateTimeZoneHandling
This commit is contained in:
@@ -664,5 +664,21 @@ namespace Newtonsoft.Json.Tests.Bson
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void DateTimeZoneHandling()
|
||||||
|
{
|
||||||
|
MemoryStream ms = new MemoryStream();
|
||||||
|
JsonWriter writer = new BsonWriter(ms)
|
||||||
|
{
|
||||||
|
DateTimeZoneHandling = Json.DateTimeZoneHandling.Utc
|
||||||
|
};
|
||||||
|
|
||||||
|
writer.WriteStartArray();
|
||||||
|
writer.WriteValue(new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Unspecified));
|
||||||
|
writer.WriteEndArray();
|
||||||
|
|
||||||
|
Assert.AreEqual("10-00-00-00-09-30-00-C8-88-07-6B-DC-00-00-00-00", (BitConverter.ToString(ms.ToArray())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -751,5 +751,18 @@ now brown cow?", '"', true);
|
|||||||
Assert.AreEqual("Existing,Appended", p.Name);
|
Assert.AreEqual("Existing,Appended", p.Name);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void SerializeObjectDateTimeZoneHandling()
|
||||||
|
{
|
||||||
|
string json = JsonConvert.SerializeObject(
|
||||||
|
new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Unspecified),
|
||||||
|
new JsonSerializerSettings
|
||||||
|
{
|
||||||
|
DateTimeZoneHandling = DateTimeZoneHandling.Utc
|
||||||
|
});
|
||||||
|
|
||||||
|
Assert.AreEqual(@"""2000-01-01T01:01:01Z""", json);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -824,5 +824,19 @@ _____'propertyName': NaN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void DateTimeZoneHandling()
|
||||||
|
{
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
JsonTextWriter writer = new JsonTextWriter(sw)
|
||||||
|
{
|
||||||
|
DateTimeZoneHandling = Json.DateTimeZoneHandling.Utc
|
||||||
|
};
|
||||||
|
|
||||||
|
writer.WriteValue(new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Unspecified));
|
||||||
|
|
||||||
|
Assert.AreEqual(@"""2000-01-01T01:01:01Z""", sw.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -174,5 +174,21 @@ namespace Newtonsoft.Json.Tests.Linq
|
|||||||
fail
|
fail
|
||||||
]", writer.Token.ToString());
|
]", writer.Token.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void DateTimeZoneHandling()
|
||||||
|
{
|
||||||
|
JTokenWriter writer = new JTokenWriter
|
||||||
|
{
|
||||||
|
DateTimeZoneHandling = Json.DateTimeZoneHandling.Utc
|
||||||
|
};
|
||||||
|
|
||||||
|
writer.WriteValue(new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Unspecified));
|
||||||
|
|
||||||
|
JValue value = (JValue) writer.Token;
|
||||||
|
DateTime dt = (DateTime)value.Value;
|
||||||
|
|
||||||
|
Assert.AreEqual(new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Utc), dt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -72,5 +72,5 @@ using System.Security;
|
|||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("4.5.0.0")]
|
[assembly: AssemblyVersion("4.5.0.0")]
|
||||||
#if !PocketPC
|
#if !PocketPC
|
||||||
[assembly: AssemblyFileVersion("4.5.2.14814")]
|
[assembly: AssemblyFileVersion("4.5.3.14817")]
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -338,6 +338,29 @@ namespace Newtonsoft.Json.Tests.Serialization
|
|||||||
Assert.AreEqual("[0] - 0 - Could not convert string to integer: a. Line 1, position 4.", errors[0]);
|
Assert.AreEqual("[0] - 0 - Could not convert string to integer: a. Line 1, position 4.", errors[0]);
|
||||||
Assert.AreEqual("[1] - 1 - Could not convert string to integer: b. Line 1, position 8.", errors[1]);
|
Assert.AreEqual("[1] - 1 - Could not convert string to integer: b. Line 1, position 8.", errors[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void ErrorHandlingAndAvoidingRecursiveDepthError()
|
||||||
|
{
|
||||||
|
string json = "{'A':{'A':{'A':{'A':{'A':{}}}}}}";
|
||||||
|
JsonSerializer serializer = new JsonSerializer() { };
|
||||||
|
IList<string> errors = new List<string>();
|
||||||
|
serializer.Error += (sender, e) =>
|
||||||
|
{
|
||||||
|
e.ErrorContext.Handled = true;
|
||||||
|
errors.Add(e.ErrorContext.Path);
|
||||||
|
};
|
||||||
|
|
||||||
|
serializer.Deserialize<Nest>(new JsonTextReader(new StringReader(json)) { MaxDepth = 3 });
|
||||||
|
|
||||||
|
Assert.AreEqual(1, errors.Count);
|
||||||
|
Assert.AreEqual("A.A.A", errors[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Nest
|
||||||
|
{
|
||||||
|
public Nest A { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonObject]
|
[JsonObject]
|
||||||
|
|||||||
@@ -403,6 +403,7 @@ namespace Newtonsoft.Json.Bson
|
|||||||
public override void WriteValue(DateTime value)
|
public override void WriteValue(DateTime value)
|
||||||
{
|
{
|
||||||
base.WriteValue(value);
|
base.WriteValue(value);
|
||||||
|
value = JsonConvert.EnsureDateTime(value, DateTimeZoneHandling);
|
||||||
AddValue(value, BsonType.Date);
|
AddValue(value, BsonType.Date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -436,9 +436,8 @@ namespace Newtonsoft.Json
|
|||||||
/// <param name="value">The <see cref="DateTime"/> value to write.</param>
|
/// <param name="value">The <see cref="DateTime"/> value to write.</param>
|
||||||
public override void WriteValue(DateTime value)
|
public override void WriteValue(DateTime value)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
base.WriteValue(value);
|
base.WriteValue(value);
|
||||||
|
value = JsonConvert.EnsureDateTime(value, DateTimeZoneHandling);
|
||||||
JsonConvert.WriteDateTimeString(_writer, value, DateFormatHandling);
|
JsonConvert.WriteDateTimeString(_writer, value, DateFormatHandling);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -348,6 +348,7 @@ namespace Newtonsoft.Json.Linq
|
|||||||
public override void WriteValue(DateTime value)
|
public override void WriteValue(DateTime value)
|
||||||
{
|
{
|
||||||
base.WriteValue(value);
|
base.WriteValue(value);
|
||||||
|
value = JsonConvert.EnsureDateTime(value, DateTimeZoneHandling);
|
||||||
AddValue(value, JsonToken.Date);
|
AddValue(value, JsonToken.Date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ using System.Security;
|
|||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
[assembly: AssemblyVersion("4.5.0.0")]
|
[assembly: AssemblyVersion("4.5.0.0")]
|
||||||
#if !PocketPC
|
#if !PocketPC
|
||||||
[assembly: AssemblyFileVersion("4.5.2.14814")]
|
[assembly: AssemblyFileVersion("4.5.3.14817")]
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
[assembly: CLSCompliant(true)]
|
[assembly: CLSCompliant(true)]
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user