diff options
author | JamesNK <james@newtonking.com> | 2010-01-16 09:10:10 +0300 |
---|---|---|
committer | JamesNK <james@newtonking.com> | 2010-01-16 09:10:10 +0300 |
commit | f9b34390f507fff120bb6a680bf0afeea5b3f3a3 (patch) | |
tree | 42be0cfb3599cc624e005162dcec84c245efedbe /Src/Newtonsoft.Json.Tests/Bson | |
parent | 75649bfa00c8eb977360fee7963ca082bd0de754 (diff) |
-Fix deserializing empty BSON structures
-Fix error message when attempting to deserialize custom dictionary with no default constructor
-Fix serializing private base members marked with JsonProperty attribute
-Fix performance issue when deserializing to object member
Diffstat (limited to 'Src/Newtonsoft.Json.Tests/Bson')
-rw-r--r-- | Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs b/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs index fa2f6da..e23c8a3 100644 --- a/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs +++ b/Src/Newtonsoft.Json.Tests/Bson/BsonReaderTests.cs @@ -596,5 +596,55 @@ namespace Newtonsoft.Json.Tests.Bson Assert.IsFalse(reader.Read());
}
+
+ [Test]
+ public void WriteAndReadEmptyListsAndDictionaries()
+ {
+ MemoryStream ms = new MemoryStream();
+ BsonWriter writer = new BsonWriter(ms);
+
+ writer.WriteStartObject();
+ writer.WritePropertyName("Arguments");
+ writer.WriteStartObject();
+ writer.WriteEndObject();
+ writer.WritePropertyName("List");
+ writer.WriteStartArray();
+ writer.WriteEndArray();
+ writer.WriteEndObject();
+
+ string bson = BitConverter.ToString(ms.ToArray());
+
+ Assert.AreEqual("20-00-00-00-03-41-72-67-75-6D-65-6E-74-73-00-05-00-00-00-00-04-4C-69-73-74-00-05-00-00-00-00-00", bson);
+
+ BsonReader reader = new BsonReader(new MemoryStream(MiscellaneousUtils.HexToBytes(bson)));
+
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(JsonToken.StartObject, reader.TokenType);
+
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(JsonToken.PropertyName, reader.TokenType);
+ Assert.AreEqual("Arguments", reader.Value.ToString());
+
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(JsonToken.StartObject, reader.TokenType);
+
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(JsonToken.EndObject, reader.TokenType);
+
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(JsonToken.PropertyName, reader.TokenType);
+ Assert.AreEqual("List", reader.Value.ToString());
+
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(JsonToken.StartArray, reader.TokenType);
+
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(JsonToken.EndArray, reader.TokenType);
+
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(JsonToken.EndObject, reader.TokenType);
+
+ Assert.IsFalse(reader.Read());
+ }
}
}
\ No newline at end of file |