Example #1
0
        public void AddArrayNotSameType()
        {
            var slice = new VPackBuilder()
                        .Add(SliceType.Array)
                        .Add(double.MaxValue)
                        .Add(int.MaxValue)
                        .Add(long.MaxValue)
                        .Close()
                        .Slice();

            Assert.True(slice.IsType(SliceType.Array));
            Assert.Equal(slice.Length, 3);

            Assert.True(slice[0].IsType(SliceType.Double));
            Assert.Equal(slice[0].Value().GetType(), typeof(double));
            Assert.Equal(slice[0].Value(), double.MaxValue);
            Assert.Equal(slice[0].ToDouble(), double.MaxValue);

            Assert.True(slice[1].IsType(SliceType.Int));
            Assert.Equal(slice[1].TypeCode, 0x23);
            Assert.Equal(slice[1].Value().GetType(), typeof(int));
            Assert.Equal(slice[1].Value(), int.MaxValue);
            Assert.Equal(slice[1].ToDouble(), int.MaxValue);

            Assert.True(slice[2].IsType(SliceType.Int));
            Assert.Equal(slice[2].TypeCode, 0x27);
            Assert.Equal(slice[2].Value().GetType(), typeof(long));
            Assert.Equal(slice[2].Value(), long.MaxValue);
            Assert.Equal(slice[2].ToDouble(), long.MaxValue);
        }
Example #2
0
        public void NonASCII()
        {
            string     s     = "·ÃÂ";
            VPackSlice vpack = new VPackBuilder().Add(s).Slice();

            Assert.True(vpack.IsType(SliceType.String));
            Assert.Equal(vpack.ToStringValue(), s);
        }
Example #3
0
        public void AddBoolNull()
        {
            var slice = new VPackBuilder()
                        .Add((bool?)null)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Null));
            Assert.Equal(slice.Value(), null);
            Assert.Equal(slice.ToBoolean(), null);
        }
Example #4
0
        public void AddDoubleNull()
        {
            var slice = new VPackBuilder()
                        .Add((double?)null)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Null));
            Assert.Equal(slice.Value(), null);
            Assert.Equal(slice.ToDouble(), null);
        }
Example #5
0
        public void AddSingleMin()
        {
            var slice = new VPackBuilder()
                        .Add(float.MinValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Double));
            Assert.Equal(slice.Value().GetType(), typeof(double));
            Assert.Equal(slice.ToSingle(), float.MinValue);
        }
Example #6
0
        public void AddDoubleMax()
        {
            var slice = new VPackBuilder()
                        .Add(double.MaxValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Double));
            Assert.Equal(slice.Value().GetType(), typeof(double));
            Assert.Equal(slice.Value(), double.MaxValue);
            Assert.Equal(slice.ToDouble(), double.MaxValue);
        }
Example #7
0
        public void AddBoolFalse()
        {
            var slice = new VPackBuilder()
                        .Add(false)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Boolean));
            Assert.Equal(slice.Value().GetType(), typeof(bool));
            Assert.Equal(slice.Value(), false);
            Assert.Equal(slice.ToBoolean(), false);
        }
Example #8
0
        public void AddUIntMax()
        {
            var slice = new VPackBuilder()
                        .Add(uint.MaxValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.UInt));
            Assert.Equal(slice.TypeCode, 0x2b);
            Assert.Equal(slice.Value().GetType(), typeof(uint));
            Assert.Equal(slice.Value(), uint.MaxValue);
            Assert.Equal(slice.ToUInt32(), uint.MaxValue);
        }
Example #9
0
        public void AddByteMax()
        {
            var slice = new VPackBuilder()
                        .Add(byte.MaxValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.UInt));
            Assert.Equal(slice.TypeCode, 0x28);
            Assert.Equal(slice.Value().GetType(), typeof(byte));
            Assert.Equal(slice.Value(), byte.MaxValue);
            Assert.Equal(slice.ToByte(), byte.MaxValue);
        }
Example #10
0
        public void AddLongMin()
        {
            var slice = new VPackBuilder()
                        .Add(long.MinValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Int));
            Assert.Equal(slice.TypeCode, 0x27);
            Assert.Equal(slice.Value().GetType(), typeof(long));
            Assert.Equal(slice.Value(), long.MinValue);
            Assert.Equal(slice.ToInt64(), long.MinValue);
        }
Example #11
0
        public void AddIntMin()
        {
            var slice = new VPackBuilder()
                        .Add(int.MinValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Int));
            Assert.Equal(slice.TypeCode, 0x23);
            Assert.Equal(slice.Value().GetType(), typeof(int));
            Assert.Equal(slice.Value(), int.MinValue);
            Assert.Equal(slice.ToInt32(), int.MinValue);
        }
Example #12
0
        public void AddShortMin()
        {
            var slice = new VPackBuilder()
                        .Add(short.MinValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Int));
            Assert.Equal(slice.TypeCode, 0x21);
            Assert.Equal(slice.Value().GetType(), typeof(short));
            Assert.Equal(slice.Value(), short.MinValue);
            Assert.Equal(slice.ToInt16(), short.MinValue);
        }
Example #13
0
        public void AddSByteMin()
        {
            var slice = new VPackBuilder()
                        .Add(sbyte.MinValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Int));
            Assert.Equal(slice.TypeCode, 0x20);
            Assert.Equal(slice.Value().GetType(), typeof(sbyte));
            Assert.Equal(slice.Value(), sbyte.MinValue);
            Assert.Equal(slice.ToSByte(), sbyte.MinValue);
        }
Example #14
0
        public void AddULongMax()
        {
            var slice = new VPackBuilder()
                        .Add(ulong.MaxValue)
                        .Slice();

            Assert.True(slice.IsType(SliceType.UInt));
            Assert.Equal(slice.TypeCode, 0x2f);
            Assert.Equal(slice.Value().GetType(), typeof(ulong));
            Assert.Equal(slice.Value(), ulong.MaxValue);
            Assert.Equal(slice.ToUInt64(), ulong.MaxValue);
        }
Example #15
0
        public void AddDateTimeOffset()
        {
            var date = new DateTimeOffset(2000, 10, 9, 8, 7, 6, TimeSpan.FromMinutes(150));

            var slice = new VPackBuilder()
                        .Add(date)
                        .Slice();

            Assert.True(slice.IsType(SliceType.UtcDate));
            Assert.Equal(slice.Value().GetType(), typeof(DateTimeOffset));
            Assert.Equal(slice.Value(), date);
            Assert.Equal(slice.ToDateTimeOffset(TimeSpan.FromMinutes(-30)), date);
        }
Example #16
0
        public void AddDateTimeUtc()
        {
            var date = new DateTime(2000, 10, 9, 8, 7, 6, DateTimeKind.Utc);

            var slice = new VPackBuilder()
                        .Add(date)
                        .Slice();

            Assert.True(slice.IsType(SliceType.UtcDate));
            Assert.Equal(slice.Value().GetType(), typeof(DateTimeOffset));
            Assert.Equal(slice.Value(), new DateTimeOffset(date));
            Assert.Equal(slice.ToDateTime(DateTimeKind.Utc), date);
        }
Example #17
0
        public void AddTimeSpan()
        {
            var timeSpan = TimeSpan.FromSeconds(321);

            var slice = new VPackBuilder()
                        .Add(timeSpan)
                        .Slice();

            Assert.True(slice.IsType(SliceType.Int));
            Assert.Equal(slice.Value().GetType(), typeof(long));
            Assert.Equal(slice.Value(), timeSpan.Ticks);
            Assert.Equal(slice.ToTimeSpan(), timeSpan);
        }
Example #18
0
        public void Empty()
        {
            VPackSlice slice = new VPackBuilder().Slice();

            Assert.True(slice.IsType(SliceType.None));
        }