예제 #1
0
        public void TestCalculateSizeOfEmptyDoc()
        {
            Document doc = new Document();
            MemoryStream ms = new MemoryStream();
            BsonWriter2 writer = new BsonWriter2(ms);

            Assert.AreEqual(5,writer.CalculateSize(doc));
        }
예제 #2
0
        public void TestCalculateSizeOfEmptyDoc()
        {
            Document     doc    = new Document();
            MemoryStream ms     = new MemoryStream();
            BsonWriter2  writer = new BsonWriter2(ms);

            Assert.AreEqual(5, writer.CalculateSize(doc));
        }
예제 #3
0
        public void TestCalculateSizeOfSimpleDoc()
        {
            Document doc = new Document();
            doc.Append("a","a");
            doc.Append("b",1);

            MemoryStream ms = new MemoryStream();
            BsonWriter2 writer = new BsonWriter2(ms);
            //BsonDocument bdoc = BsonConvert.From(doc);

            Assert.AreEqual(21,writer.CalculateSize(doc));
        }
예제 #4
0
        public void TestCalculateSizeOfComplexDoc()
        {
            Document doc = new Document();
            doc.Append("a","a");
            doc.Append("b",1);
            Document sub = new Document().Append("c_1",1).Append("c_2",DateTime.Now);
            doc.Append("c",sub);
            MemoryStream ms = new MemoryStream();
            BsonWriter2 writer = new BsonWriter2(ms);

            Assert.AreEqual(51,writer.CalculateSize(doc));
        }
예제 #5
0
        public void TestWriteString()
        {
            MemoryStream ms       = new MemoryStream();
            BsonWriter2  writer   = new BsonWriter2(ms);
            string       expected = "54-65-73-74-73-2E-69-6E-73-65-72-74-73-00";

            writer.WriteString("Tests.inserts");

            string hexdump = BitConverter.ToString(ms.ToArray());

            Assert.AreEqual(expected, hexdump);
        }
예제 #6
0
        public void TestWriteArrayDoc()
        {
            String expected = "2000000002300002000000610002310002000000620002320002000000630000";
            MemoryStream ms = new MemoryStream();
            BsonWriter2 writer = new BsonWriter2(ms);

            String[] str = new String[]{"a","b","c"};
            writer.WriteValue(BsonDataType.Array,str);

            string hexdump = BitConverter.ToString(ms.ToArray());
            hexdump = hexdump.Replace("-","");
            Assert.AreEqual(expected, hexdump);
        }
예제 #7
0
        public void TestWriteDocument()
        {
            MemoryStream ms = new MemoryStream();
            BsonWriter2 writer = new BsonWriter2(ms);
            string expected = "1400000002746573740005000000746573740000";
            Document doc = new Document().Append("test", "test");

            writer.WriteDocument(doc);

            string hexdump = BitConverter.ToString(ms.ToArray());
            hexdump = hexdump.Replace("-","");

            Assert.AreEqual(expected, hexdump);
        }
예제 #8
0
        public void TestWriteArrayDoc()
        {
            String       expected = "2000000002300002000000610002310002000000620002320002000000630000";
            MemoryStream ms       = new MemoryStream();
            BsonWriter2  writer   = new BsonWriter2(ms);

            String[] str = new String[] { "a", "b", "c" };
            writer.WriteValue(BsonDataType.Array, str);

            string hexdump = BitConverter.ToString(ms.ToArray());

            hexdump = hexdump.Replace("-", "");
            Assert.AreEqual(expected, hexdump);
        }
예제 #9
0
        public void TestCalculateSizeOfComplexDoc()
        {
            Document doc = new Document();

            doc.Append("a", "a");
            doc.Append("b", 1);
            Document sub = new Document().Append("c_1", 1).Append("c_2", DateTime.Now);

            doc.Append("c", sub);
            MemoryStream ms     = new MemoryStream();
            BsonWriter2  writer = new BsonWriter2(ms);

            Assert.AreEqual(51, writer.CalculateSize(doc));
        }
예제 #10
0
        public void TestCalculateSizeOfSimpleDoc()
        {
            Document doc = new Document();

            doc.Append("a", "a");
            doc.Append("b", 1);

            MemoryStream ms     = new MemoryStream();
            BsonWriter2  writer = new BsonWriter2(ms);

            //BsonDocument bdoc = BsonConvert.From(doc);

            Assert.AreEqual(21, writer.CalculateSize(doc));
        }
예제 #11
0
        public void TestWriteDocument()
        {
            MemoryStream ms       = new MemoryStream();
            BsonWriter2  writer   = new BsonWriter2(ms);
            string       expected = "1400000002746573740005000000746573740000";
            Document     doc      = new Document().Append("test", "test");

            writer.WriteDocument(doc);

            string hexdump = BitConverter.ToString(ms.ToArray());

            hexdump = hexdump.Replace("-", "");

            Assert.AreEqual(expected, hexdump);
        }
예제 #12
0
        public void TestWrite()
        {
            MemoryStream ms = new MemoryStream();

            InsertMessage im = new InsertMessage();

            im.FullCollectionName = "Tests.inserts";
            Document doc = new Document();

            Document[] docs = new Document[] { doc };
            doc.Append("a", "a");
            doc.Append("b", 1);
            im.Documents = docs;

            Assert.AreEqual(16, im.Header.MessageLength);

            BsonWriter2 bwriter = new BsonWriter2(ms);

            Assert.AreEqual(21, bwriter.CalculateSize(doc));

            im.Write(ms);

            Byte[] bytes   = ms.ToArray();
            String hexdump = BitConverter.ToString(bytes);

            System.Console.WriteLine(hexdump);

            MemoryStream ms2 = new MemoryStream();
            BsonWriter   b   = new BsonWriter(ms2);

            b.Write(im.Header.MessageLength);
            b.Write(im.Header.RequestId);
            b.Write(im.Header.ResponseTo);
            b.Write((int)im.Header.OpCode);
            b.Write((int)0);
            b.Write(im.FullCollectionName);
            BsonDocument bdoc = BsonConvert.From(doc);

            bdoc.Write(b);

            b.Flush();
            String hexdump2 = BitConverter.ToString(ms2.ToArray());

            System.Console.WriteLine(hexdump2);
            Assert.AreEqual(hexdump2, hexdump);
            Assert.AreEqual(bytes.Length, im.Header.MessageLength);
        }
예제 #13
0
        public void TestWrite()
        {
            MemoryStream ms = new MemoryStream();

            InsertMessage im = new InsertMessage();
            im.FullCollectionName ="Tests.inserts";
            Document doc = new Document();
            Document[] docs = new Document[]{doc};
            doc.Append("a","a");
            doc.Append("b",1);
            im.Documents = docs;

            Assert.AreEqual(16,im.Header.MessageLength);

            BsonWriter2 bwriter = new BsonWriter2(ms);

            Assert.AreEqual(21,bwriter.CalculateSize(doc));

            im.Write(ms);

            Byte[] bytes = ms.ToArray();
            String hexdump = BitConverter.ToString(bytes);
            System.Console.WriteLine(hexdump);

            MemoryStream ms2 = new MemoryStream();
            BsonWriter b = new BsonWriter(ms2);
            b.Write(im.Header.MessageLength);
            b.Write(im.Header.RequestId);
            b.Write(im.Header.ResponseTo);
            b.Write((int)im.Header.OpCode);
            b.Write((int)0);
            b.Write(im.FullCollectionName);
            BsonDocument bdoc = BsonConvert.From(doc);
            bdoc.Write(b);

            b.Flush();
            String hexdump2 = BitConverter.ToString(ms2.ToArray());
            System.Console.WriteLine(hexdump2);
            Assert.AreEqual(hexdump2,hexdump);
            Assert.AreEqual(bytes.Length,im.Header.MessageLength);
        }
예제 #14
0
        public void TestWriteString()
        {
            MemoryStream ms = new MemoryStream();
            BsonWriter2 writer = new BsonWriter2(ms);
            string expected = "54-65-73-74-73-2E-69-6E-73-65-72-74-73-00";
            writer.WriteString("Tests.inserts");

            string hexdump = BitConverter.ToString(ms.ToArray());

            Assert.AreEqual(expected, hexdump);
        }