diff options
author | JamesNK <james@newtonking.com> | 2010-01-23 01:17:56 +0300 |
---|---|---|
committer | JamesNK <james@newtonking.com> | 2010-01-23 01:17:56 +0300 |
commit | be6ed7daaae9804a50914b5702adc9301361f28a (patch) | |
tree | 8e0d4dd1e7174fcd72f422e48d0f3bb2d7686193 /Src/Newtonsoft.Json.Tests/Bson | |
parent | 621916f5a6d1f6cf234bf7baa2f23b75ee279d01 (diff) |
-Added ReadRootValueAsArray, DateTimeKindHandling properties to BsonReader
-Included BSON is .NET 2.0, Silverlight and Compact Framework builds
Diffstat (limited to 'Src/Newtonsoft.Json.Tests/Bson')
-rw-r--r-- | Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs | 49 | ||||
-rw-r--r-- | Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs | 3 |
2 files changed, 48 insertions, 4 deletions
diff --git a/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs b/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs index e23c8a3..f826278 100644 --- a/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs +++ b/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs @@ -117,7 +117,16 @@ namespace Newtonsoft.Json.Tests.Bson byte[] data = MiscellaneousUtils.HexToBytes("20-00-00-00-02-30-00-02-00-00-00-61-00-02-31-00-02-00-00-00-62-00-02-32-00-02-00-00-00-63-00-00");
MemoryStream ms = new MemoryStream(data);
- BsonReader reader = new BsonReader(ms, true);
+ BsonReader reader = new BsonReader(ms);
+
+ Assert.AreEqual(false, reader.ReadRootValueAsArray);
+ Assert.AreEqual(DateTimeKind.Local, reader.DateTimeKindHandling);
+
+ reader.ReadRootValueAsArray = true;
+ reader.DateTimeKindHandling = DateTimeKind.Utc;
+
+ Assert.AreEqual(true, reader.ReadRootValueAsArray);
+ Assert.AreEqual(DateTimeKind.Utc, reader.DateTimeKindHandling);
Assert.IsTrue(reader.Read());
Assert.AreEqual(JsonToken.StartArray, reader.TokenType);
@@ -149,7 +158,10 @@ namespace Newtonsoft.Json.Tests.Bson byte[] data = MiscellaneousUtils.HexToBytes("2B-00-00-00-02-30-00-02-00-00-00-61-00-02-31-00-02-00-00-00-62-00-05-32-00-0C-00-00-00-02-48-65-6C-6C-6F-20-77-6F-72-6C-64-21-00");
MemoryStream ms = new MemoryStream(data);
- BsonReader reader = new BsonReader(ms, true);
+ BsonReader reader = new BsonReader(ms, true, DateTimeKind.Utc);
+
+ Assert.AreEqual(true, reader.ReadRootValueAsArray);
+ Assert.AreEqual(DateTimeKind.Utc, reader.DateTimeKindHandling);
Assert.IsTrue(reader.Read());
Assert.AreEqual(JsonToken.StartArray, reader.TokenType);
@@ -175,7 +187,7 @@ namespace Newtonsoft.Json.Tests.Bson Assert.IsFalse(reader.Read());
- string decodedString = Encoding.UTF8.GetString(encodedStringData);
+ string decodedString = Encoding.UTF8.GetString(encodedStringData, 0, encodedStringData.Length);
Assert.AreEqual("Hello world!", decodedString);
}
@@ -646,5 +658,36 @@ namespace Newtonsoft.Json.Tests.Bson Assert.IsFalse(reader.Read());
}
+
+ [Test]
+ public void DateTimeKindHandling()
+ {
+ DateTime value = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);
+
+ MemoryStream ms = new MemoryStream();
+ BsonWriter writer = new BsonWriter(ms);
+
+ writer.WriteStartObject();
+ writer.WritePropertyName("DateTime");
+ writer.WriteValue(value);
+ writer.WriteEndObject();
+
+ byte[] bson = ms.ToArray();
+
+ JObject o;
+ BsonReader reader;
+
+ reader = new BsonReader(new MemoryStream(bson), false, DateTimeKind.Utc);
+ o = (JObject)JToken.ReadFrom(reader);
+ Assert.AreEqual(value, (DateTime)o["DateTime"]);
+
+ reader = new BsonReader(new MemoryStream(bson), false, DateTimeKind.Local);
+ o = (JObject)JToken.ReadFrom(reader);
+ Assert.AreEqual(value.ToLocalTime(), (DateTime)o["DateTime"]);
+
+ reader = new BsonReader(new MemoryStream(bson), false, DateTimeKind.Unspecified);
+ o = (JObject)JToken.ReadFrom(reader);
+ Assert.AreEqual(DateTime.SpecifyKind(value.ToLocalTime(), DateTimeKind.Unspecified), (DateTime)o["DateTime"]);
+ }
}
}
\ No newline at end of file diff --git a/Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs b/Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs index bc3d323..e97f5b0 100644 --- a/Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs +++ b/Src/Newtonsoft.Json.Tests/Bson/BsonWriterTests.cs @@ -147,11 +147,12 @@ namespace Newtonsoft.Json.Tests.Bson s1.Open = true;
s1.product.Add(new Product
{
- ExpiryDate = new DateTime(2000, 9, 28, 3, 59, 58, DateTimeKind.Utc),
+ ExpiryDate = new DateTime(2000, 9, 28, 3, 59, 58, DateTimeKind.Local),
Name = "BSON!",
Price = -0.1m,
Sizes = new [] { "First", "Second" }
});
+ s1.Establised = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Local);
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(writer, s1);
|