Пример #1
0
        public void UnindexedArray()
        {
            long[]       expected = { 1, 16 };
            VPackBuilder builder  = new VPackBuilder();

            builder.GetOptions().SetBuildUnindexedArrays(true);
            builder.Add(SliceType.Array, false);
            foreach (var l in expected)
            {
                builder.Add(l);
            }
            builder.Close();

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Array));

            Assert.Equal(slice.Length, 2);
            for (int i = 0; i < expected.Length; i++)
            {
                VPackSlice at = slice[i];

                Assert.True(at.IsInteger());

                Assert.Equal(at.ToInt64(), expected[i]);
            }
        }
Пример #2
0
        public void CompactArray()
        {
            long[]       expected = { 1, 16 };
            VPackBuilder builder  = new VPackBuilder();

            builder.Add(SliceType.Array, true);
            foreach (var l in expected)
            {
                builder.Add(l);
            }
            builder.Close();

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Array));

            Assert.Equal(slice.Length, 2);
            for (int i = 0; i < expected.Length; i++)
            {
                VPackSlice at = slice[i];

                Assert.True(at.IsNumeric());

                Assert.Equal(at.ToInt64(), expected[i]);
            }
        }
Пример #3
0
        public void AddVPackObjectInArray()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(SliceType.Array);
            for (int i = 0; i < 10; i++)
            {
                VPackBuilder builder2 = new VPackBuilder();
                builder2.Add(SliceType.Object);
                builder2.Add("s", "test");
                builder2.Close();
                builder.Add(builder2.Slice());
            }
            builder.Close();
            VPackSlice slice = builder.Slice();

            Assert.NotNull(slice);

            Assert.True(slice.IsType(SliceType.Array));

            Assert.Equal(slice.Length, 10);
            for (int i = 0; i < 10; i++)
            {
                Assert.True(slice[i].IsType(SliceType.Object));

                Assert.True(slice[i]["s"].IsType(SliceType.String));

                Assert.Equal(slice[i]["s"].ToStringValue(), "test");

                Assert.Equal(slice[i].Length, 1);
            }
        }
Пример #4
0
        public void Object2ByteOffset()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(SliceType.Object);
            int size = 10;

            for (int i = 0; i < size; i++)
            {
                builder.Add(i.ToString(), SliceType.Object);
                for (int j = 0; j < size; j++)
                {
                    builder.Add(j.ToString(), "test");
                }
                builder.Close();
            }
            builder.Close();
            VPackSlice vpack = builder.Slice();

            Assert.True(vpack.IsType(SliceType.Object));

            Assert.Equal(vpack.Length, size);
            for (int i = 0; i < size; i++)
            {
                VPackSlice attr = vpack[i.ToString()];

                Assert.True(attr.IsType(SliceType.Object));
                for (int j = 0; j < size; j++)
                {
                    VPackSlice childAttr = attr[j.ToString()];

                    Assert.True(childAttr.IsType(SliceType.String));
                }
            }
        }
Пример #5
0
        public void AddVPackObject()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(SliceType.Object);
            {
                VPackBuilder builder2 = new VPackBuilder();
                builder2.Add(SliceType.Object);
                builder2.Add("s", "test");
                builder2.Close();
                builder.Add("o", builder2.Slice());
            }
            builder.Close();
            VPackSlice slice = builder.Slice();

            Assert.NotNull(slice);

            Assert.True(slice.IsType(SliceType.Object));

            Assert.True(slice["o"].IsType(SliceType.Object));

            Assert.True(slice["o"]["s"].IsType(SliceType.String));

            Assert.Equal(slice["o"]["s"].ToStringValue(), "test");

            Assert.Equal(slice.Length, 1);

            Assert.Equal(slice["o"].Length, 1);
        }
Пример #6
0
        public void ArrayInArrayInArray()
        {
            //{ { { 1, 2, 3 } } }
            long[][][] values = new long[1][][];
            values[0]    = new long[1][];
            values[0][0] = new long[] { 1, 2, 3 };

            VPackBuilder builder = new VPackBuilder();

            builder.Add(SliceType.Array);
            foreach (var lss in values)
            {
                builder.Add(SliceType.Array);
                foreach (var ls in lss)
                {
                    builder.Add(SliceType.Array);
                    foreach (var l in ls)
                    {
                        builder.Add(l);
                    }
                    builder.Close();
                }
                builder.Close();
            }
            builder.Close();

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Array));

            Assert.Equal(slice.Length, values.Length);
            for (int i = 0; i < values.Length; i++)
            {
                VPackSlice lls = slice[i];

                Assert.True(lls.IsType(SliceType.Array));

                Assert.Equal(lls.Length, values[i].Length);
                for (int j = 0; j < values[i].Length; j++)
                {
                    VPackSlice ls = lls[i];

                    Assert.True(ls.IsType(SliceType.Array));

                    Assert.Equal(ls.Length, values[i][j].Length);
                    for (int k = 0; k < values[i][j].Length; k++)
                    {
                        VPackSlice l = ls[k];

                        Assert.True(l.IsInteger());

                        Assert.Equal(l.ToInt64(), values[i][j][k]);
                    }
                }
            }
        }
Пример #7
0
        public void AddNull()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(SliceType.Null);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Null));
        }
Пример #8
0
        public void AddNull()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(ValueType.NULL);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsNull);
        }
Пример #9
0
        public void AddBooleanFalse()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(false);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsBoolean);
            Assert.False(slice.AsBoolean);
        }
Пример #10
0
        public void AddBooleanFalse()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(false);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Boolean));

            Assert.False(slice.ToBoolean());
        }
Пример #11
0
        public void AddIntegerAsSmallIntMax()
        {
            VPackBuilder builder = new VPackBuilder();
            const int    VALUE   = 9;

            builder.Add(VALUE);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsSmallInt);
            Assert.Equal(VALUE, slice.AsInt);
        }
Пример #12
0
        public void AddBigIntegerAsUInt()
        {
            VPackBuilder builder = new VPackBuilder();
            BigInteger   value   = new BigInteger(long.MaxValue);

            builder.Add(value, ValueType.UINT);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsUInt);
            Assert.Equal(value, slice.AsBigInteger);
        }
Пример #13
0
        public void AddDate()
        {
            VPackBuilder builder = new VPackBuilder();
            DateTime     value   = DateTime.Now;

            builder.Add(value);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsDate);
            Assert.Equal(value, slice.AsDate);
        }
Пример #14
0
        public void AddLongAsUInt()
        {
            VPackBuilder builder = new VPackBuilder();
            const long   VALUE   = long.MaxValue;

            builder.Add(VALUE, ValueType.UINT);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsUInt);
            Assert.Equal(VALUE, slice.AsLong);
        }
Пример #15
0
        public void AddLongAsSmallIntMax()
        {
            VPackBuilder builder = new VPackBuilder();
            const long   VALUE   = 9;

            builder.Add(VALUE);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsSmallInt);
            Assert.Equal(VALUE, slice.AsLong);
        }
Пример #16
0
        public void AddBigIntegerAsSmallIntMax()
        {
            VPackBuilder builder = new VPackBuilder();
            BigInteger   value   = new BigInteger(9);

            builder.Add(value, ValueType.SMALLINT);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsSmallInt);
            Assert.Equal(value, slice.AsBigInteger);
        }
Пример #17
0
        public void AddStringLong()
        {
            VPackBuilder builder = new VPackBuilder();
            const string VALUE   = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus.";

            builder.Add(VALUE);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsString);
            Assert.Equal(VALUE, slice.AsString);
        }
Пример #18
0
        public void AddStringShort()
        {
            VPackBuilder builder = new VPackBuilder();
            const string VALUE   = "Hallo Welt!";

            builder.Add(VALUE);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsString);
            Assert.Equal(VALUE, slice.AsString);
        }
Пример #19
0
        public void AddDouble()
        {
            VPackBuilder builder = new VPackBuilder();
            const double VALUE   = Double.MaxValue;

            builder.Add(VALUE);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsDouble);
            Assert.Equal(VALUE, slice.AsDouble);
        }
Пример #20
0
        public void AddIntegerAsInt()
        {
            VPackBuilder builder = new VPackBuilder();
            const int    VALUE   = int.MaxValue;

            builder.Add(VALUE);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsInt);
            Assert.Equal(VALUE, slice.AsInt);
        }
Пример #21
0
        public void AddIntegerAsSmallIntMax()
        {
            VPackBuilder builder = new VPackBuilder();
            int          value   = 9;

            builder.AddCompactInt(value);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.SmallInt));

            Assert.Equal(slice.ToInt32(), value);
        }
Пример #22
0
        public void AddIntegerAsInt()
        {
            VPackBuilder builder = new VPackBuilder();
            int          value   = int.MaxValue;

            builder.Add(value);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Int));

            Assert.Equal(slice.ToInt32(), value);
        }
Пример #23
0
        public void AddStringShort()
        {
            VPackBuilder builder = new VPackBuilder();
            string       s       = "Hallo Welt!";

            builder.Add(s);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.String));

            Assert.Equal(slice.ToStringValue(), s);
        }
Пример #24
0
        public void AddLongAsSmallIntMin()
        {
            VPackBuilder builder = new VPackBuilder();
            long         value   = -6;

            builder.AddCompactInt(value);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.SmallInt));

            Assert.Equal(slice.ToInt64(), value);
        }
Пример #25
0
        public void AddDouble()
        {
            VPackBuilder builder = new VPackBuilder();
            double       value   = double.MaxValue;

            builder.Add(value);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Double));

            Assert.Equal(slice.ToDouble(), value);
        }
Пример #26
0
        public void AddLongAsInt()
        {
            VPackBuilder builder = new VPackBuilder();
            long         value   = long.MaxValue;

            builder.Add(value);

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Int));

            Assert.Equal(slice.ToInt64(), value);
        }
Пример #27
0
        public void EmptyArray()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(SliceType.Array);
            builder.Close();

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Array));

            Assert.Equal(slice.Length, 0);
            Assert.Throws <IndexOutOfRangeException>(() => slice[0]);
        }
Пример #28
0
        public void ObjectAttributeNotFound()
        {
            VPackBuilder builder = new VPackBuilder();

            builder.Add(SliceType.Object);
            builder.Add("a", "a");
            builder.Close();
            VPackSlice vpack = builder.Slice();

            Assert.True(vpack.IsType(SliceType.Object));
            VPackSlice b = vpack["b"];

            Assert.True(b.IsType(SliceType.None));
        }
Пример #29
0
        public void ObjectInObject()
        {
            // {"a":{"a1":1,"a2":2},"b":{"b1":1,"b2":1}}
            VPackBuilder builder = new VPackBuilder();

            builder.Add(SliceType.Object);
            {
                builder.Add("a", SliceType.Object);
                builder.Add("a1", 1);
                builder.Add("a2", 2);
                builder.Close();
            }
            {
                builder.Add("b", SliceType.Object);
                builder.Add("b1", 1);
                builder.Add("b2", 2);
                builder.Close();
            }
            builder.Close();

            VPackSlice slice = builder.Slice();

            Assert.True(slice.IsType(SliceType.Object));

            Assert.Equal(slice.Length, 2);
            {
                VPackSlice a = slice["a"];

                Assert.True(a.IsType(SliceType.Object));

                Assert.Equal(a.Length, 2);

                Assert.Equal(a["a1"].ToInt64(), 1L);

                Assert.Equal(a["a2"].ToInt64(), 2L);
            }
            {
                VPackSlice b = slice["b"];

                Assert.True(b.IsType(SliceType.Object));

                Assert.Equal(b.Length, 2);

                Assert.Equal(b["b1"].ToInt64(), 1L);

                Assert.Equal(b["b2"].ToInt64(), 2L);
            }
        }
Пример #30
0
        public void AddBinary()
        {
            byte[]       expected = new byte[] { 49, 50, 51, 52, 53, 54, 55, 56, 57 };
            VPackBuilder builder  = new VPackBuilder();

            builder.Add(expected);
            VPackSlice slice = builder.Slice();


            Assert.True(slice.IsType(SliceType.Binary));

            Assert.Equal(slice.BinaryLength(), expected.Length);

            Assert.Equal(slice.ToBinary(), expected);

            Assert.Equal(slice.GetByteSize(), 1 + 4 + expected.Length);
        }