public void TestReadBigDocument() { MemoryStream ms = new MemoryStream(); var writer = new BsonWriter(ms, new BsonDocumentDescriptor()); Document expected = new Document(); expected.Append("str", "test") .Append("int", 45) .Append("long", (long)46) .Append("num", 4.5) .Append("date",DateTime.Today) .Append("_id", new OidGenerator().Generate()) .Append("code", new Code("return 1;")) .Append("subdoc", new Document().Append("a",1).Append("b",2)) .Append("array", new String[]{"a","b","c","d"}) .Append("codewscope", new CodeWScope("return 2;", new Document().Append("c",1))) .Append("binary", new Binary(new byte[]{0,1,2,3})) .Append("regex", new MongoRegex("[A-Z]")) .Append("minkey", MongoMinKey.Value) .Append("maxkey", MongoMaxKey.Value) .Append("symbol", new MongoSymbol("symbol")) ; writer.WriteObject(expected); writer.Flush(); ms.Seek(0,SeekOrigin.Begin); BsonReader reader = new BsonReader(ms, new BsonDocumentBuilder()); Document doc = reader.Read(); Assert.IsNotNull(doc); }
public void TestRoundTrip(){ var idoc = new Document{{"b", new Binary(new[]{(byte)1, (byte)2})}}; var stream = new MemoryStream(); var writer = new BsonWriter(stream, new BsonDocumentDescriptor()); writer.WriteObject(idoc); stream.Seek(0, SeekOrigin.Begin); var reader = new BsonReader(stream,new BsonDocumentBuilder()); var odoc = reader.Read(); Assert.AreEqual(idoc.ToString(), odoc.ToString()); }
public void TestBinaryRead(){ const string hex = "28000000075f6964004b1971811d8b0f00c0000000056461746100070000000203000000e188b400"; var data = DecodeHex(hex); var inmem = new MemoryStream(data); var inreader = new BsonReader(inmem,new BsonDocumentBuilder()); var indoc = inreader.Read(); var outmem = new MemoryStream(); var outwriter = new BsonWriter(outmem, new BsonDocumentDescriptor()); outwriter.WriteObject(indoc); var outdata = outmem.ToArray(); var outhex = BitConverter.ToString(outdata); outhex = outhex.Replace("-", ""); Assert.AreEqual(hex, outhex.ToLower()); }
private static void DoDecode(byte[] buff) { var ms = new MemoryStream(buff); for(var i = 0; i < perTrial; i++) { var reader = new BsonReader(ms, new BsonDocumentBuilder()); reader.Read(); ms.Seek(0, SeekOrigin.Begin); } }
public void TestReadSimpleDocument() { var buf = HexToBytes("1400000002746573740005000000746573740000"); var ms = new MemoryStream(buf); var reader = new BsonReader(ms, new BsonDocumentBuilder()); var doc = reader.Read(); Assert.IsNotNull(doc, "Document was null"); Assert.IsTrue(doc.ContainsKey("test")); Assert.AreEqual("test", doc["test"]); }
protected Document WriteAndRead(Document source){ MemoryStream ms = new MemoryStream(); BsonWriter writer = new BsonWriter(ms, new BsonDocumentDescriptor()); writer.WriteObject(source); writer.Flush(); ms.Seek(0, SeekOrigin.Begin); BsonReader reader = new BsonReader(ms,new BsonDocumentBuilder()); return reader.Read(); }