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()); }
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; } }