예제 #1
0
        public void scalarInt32()
        {
            // BFLAT encoding of {"foo":1} (int32)
            byte[] data = { 0x2B, 0x66, 0x6F, 0x6F, 0x1, 0x0, 0x0, 0x0 };

            BFlatParser p = new BFlatParser().parse(data);

            Assert.IsTrue(p.MoveNext());
            BFlatValue v = p.Current;

            Assert.IsNotNull(v);
            Assert.AreEqual(BFlatEncoding.Type.Int32, v.getType());
            Assert.IsFalse(v.isArray());
            Assert.AreEqual("foo", v.getTag());
            Assert.AreEqual(1, v.getLong());
            Assert.AreEqual(1, v.getInt32());
            Assert.IsFalse(v.isNull());
            Assert.AreEqual(v.ToString(), "foo=1");
            Assert.IsFalse(p.MoveNext());
        }
예제 #2
0
        public void nullStringDoubleReuse()
        {
            byte[] data =
            {
                (byte)0x4,  (byte)0x6E, (byte)0x75, (byte)0x6C, (byte)0x6C, (byte)0x8,  (byte)0x10, (byte)0x73, (byte)0x74, (byte)0x72,
                (byte)0x69, (byte)0x6E, (byte)0x67, (byte)0x20, (byte)0x67, (byte)0x6F, (byte)0x65, (byte)0x73, (byte)0x20, (byte)0x68,
                (byte)0x65, (byte)0x72, (byte)0x65, (byte)0x1,  (byte)0x61, (byte)0x3E, (byte)0x64, (byte)0x6F, (byte)0x75, (byte)0x62,
                (byte)0x6C, (byte)0x65, (byte)0x73, (byte)0x68, (byte)0x91, (byte)0xED, (byte)0x7C, (byte)0xFF, (byte)0x23, (byte)0x40
            };

            String[]    expected = { "null=null", "string goes here=\"a\"", "double=9.999" };
            BFlatParser p        = new BFlatParser().parse(data);
            int         i        = 0;
            BFlatValue  prev     = null;

            foreach (BFlatValue v in p)
            {
                if (prev != null)
                {
                    Assert.IsTrue(Object.ReferenceEquals(v, prev));
                }
                Assert.AreEqual(expected[i], v.ToString());
                ++i;
                v.reuse();
                prev = v;
            }

            p.parse(data);
            i    = 0;
            prev = null;
            foreach (BFlatValue v in p)
            {
                Assert.IsFalse(Object.ReferenceEquals(v, prev));
                Assert.AreEqual(expected[i], v.ToString());
                ++i;
                prev = v;
            }
        }