protected Document Deserialize(string base64, BsonReaderSettings settings) { using(var mem = new MemoryStream(Convert.FromBase64String(base64))) { var reader = new BsonReader(mem, settings); return (Document)reader.ReadObject(); } }
public void TestReadEmptyDocument(){ var buf = HexToBytes("0500000000"); var ms = new MemoryStream(buf); var reader = new BsonReader(ms, new BsonDocumentBuilder()); var doc = (Document)reader.ReadObject(); Assert.IsNotNull(doc); }
public void TestReadDocWithDocs(){ // Document doc = new Document().Append("a", new Document().Append("b", new Document().Append("c",new Document()))); // Console.WriteLine(ConvertDocToHex(doc)); var buf = HexToBytes("1D000000036100150000000362000D0000000363000500000000000000"); var ms = new MemoryStream(buf); var reader = new BsonReader(ms, new BsonDocumentBuilder()); var doc = (Document)reader.ReadObject(); Assert.IsNotNull(doc, "Document was null"); Assert.AreEqual(buf.Length, reader.Position); Assert.IsTrue(doc.ContainsKey("a")); }
public void TestReadMultiElementDocument() { var buf = HexToBytes("2D000000075F6964004A753AD8FAC16EA58B290351016100000000000000F03F02620005000000746573740000"); var ms = new MemoryStream(buf); var reader = new BsonReader(ms, new BsonDocumentBuilder()); var doc = (Document)reader.ReadObject(); Assert.IsNotNull(doc, "Document was null"); Assert.IsTrue(doc.ContainsKey("_id")); Assert.IsTrue(doc.ContainsKey("a")); Assert.IsTrue(doc.ContainsKey("b")); Assert.AreEqual("4a753ad8fac16ea58b290351", (doc["_id"]).ToString()); Assert.AreEqual(1, Convert.ToInt32(doc["a"])); Assert.AreEqual("test", doc["b"]); }