Exemple #1
0
        public void TestSerialize1()
        {
            byte[]       bdata;
            BSONDocument doc = new BSONDocument();

            doc.SetNumber("0", 1);
            //0C-00-00-00   len
            //10		    type
            //30-00         key
            //01-00-00-00	int val
            //00			zero term
            bdata = doc.ToByteArray();
            Assert.AreEqual("0C-00-00-00-10-30-00-01-00-00-00-00", doc.ToDebugDataString());
            Assert.AreEqual(bdata.Length, (int)Convert.ToByte(doc.ToDebugDataString().Substring(0, 2), 16));

            BSONDocument doc2 = new BSONDocument(doc.ToByteArray());

            Assert.AreEqual(1, doc2.KeysCount);
            int c = 0;

            foreach (BSONValue bv in doc2)
            {
                c++;
                Assert.IsNotNull(bv);
                Assert.AreEqual(BSONType.INT, bv.BSONType);
                Assert.AreEqual("0", bv.Key);
                Assert.AreEqual(1, bv.Value);
            }
            Assert.That(c > 0);
            doc2.SetNumber("0", 2);
            Assert.AreEqual(1, doc2.KeysCount);
            object ival = doc2["0"];

            Assert.IsInstanceOf(typeof(int), ival);
            Assert.AreEqual(2, ival);
            doc2.SetNumber("1", Int32.MaxValue);
            //13-00-00-00
            //10
            //30-00
            //02-00-00-00
            //10-31-00
            //FF-FF-FF-7F
            //00
            Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
                            doc2.ToDebugDataString());

            doc2 = new BSONDocument(doc2);
            Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
                            doc2.ToDebugDataString());

            doc2 = new BSONDocument(doc2.ToByteArray());
            Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
                            doc2.ToDebugDataString());

            doc      = new BSONDocument();
            doc["a"] = 1;
            Assert.AreEqual("0C-00-00-00-10-61-00-01-00-00-00-00", doc.ToDebugDataString());
        }
Exemple #2
0
        public void TestSerialize1()
        {
            byte[] bdata;
            BSONDocument doc = new BSONDocument();
            doc.SetNumber("0", 1);
            //0C-00-00-00 	len
            //10		  	type
            //30-00 		key
            //01-00-00-00	int val
            //00			zero term
            bdata = doc.ToByteArray();
            Assert.AreEqual("0C-00-00-00-10-30-00-01-00-00-00-00", doc.ToDebugDataString());
            Assert.AreEqual(bdata.Length, (int) Convert.ToByte(doc.ToDebugDataString().Substring(0, 2), 16));

            BSONDocument doc2 = new BSONDocument(doc.ToByteArray());
            Assert.AreEqual(1, doc2.KeysCount);
            int c = 0;
            foreach (BSONValue bv in doc2) {
                c++;
                Assert.IsNotNull(bv);
                Assert.AreEqual(BSONType.INT, bv.BSONType);
                Assert.AreEqual("0", bv.Key);
                Assert.AreEqual(1, bv.Value);
            }
            Assert.That(c > 0);
            doc2.SetNumber("0", 2);
            Assert.AreEqual(1, doc2.KeysCount);
            object ival = doc2["0"];
            Assert.IsInstanceOf(typeof(int), ival);
            Assert.AreEqual(2, ival);
            doc2.SetNumber("1", Int32.MaxValue);
            //13-00-00-00
            //10
            //30-00
            //02-00-00-00
            //10-31-00
            //FF-FF-FF-7F
            //00
            Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
                            doc2.ToDebugDataString());

            doc2 = new BSONDocument(doc2);
            Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
                            doc2.ToDebugDataString());

            doc2 = new BSONDocument(doc2.ToByteArray());
            Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
                            doc2.ToDebugDataString());

            doc = new BSONDocument();
            doc["a"] = 1;
            Assert.AreEqual("0C-00-00-00-10-61-00-01-00-00-00-00", doc.ToDebugDataString());
        }