Пример #1
0
        public void NegativeTimeSpanValues()
        {
            var schema = new FixedSchema("duration", DurationLogicalType.DurationSize)
            {
                LogicalType = new DurationLogicalType(),
            };

            var serialize = serializerBuilder.BuildDelegate <TimeSpan>(schema);

            using (stream)
            {
                Assert.Throws <OverflowException>(() => serialize(TimeSpan.FromMilliseconds(-1), new Utf8JsonWriter(stream)));
            }
        }
        public void DoubleValues(double value)
        {
            var schema = new DoubleSchema();

            var deserialize = deserializerBuilder.BuildDelegate <double>(schema);
            var serialize   = serializerBuilder.BuildDelegate <double>(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(value, deserialize(ref reader));
        }
        public void BooleanValues(bool value)
        {
            var schema = new BooleanSchema();

            var deserialize = deserializerBuilder.BuildDelegate <bool>(schema);
            var serialize   = serializerBuilder.BuildDelegate <bool>(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(value, deserialize(ref reader));
        }
Пример #4
0
        public void ByteArrayValues(byte[] value)
        {
            var schema = new FixedSchema("test", value.Length);

            var deserialize = deserializerBuilder.BuildDelegate <byte[]>(schema);
            var serialize   = serializerBuilder.BuildDelegate <byte[]>(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(value, deserialize(ref reader));
        }
        public void DynamicFloatValues(dynamic value)
        {
            var schema = new FloatSchema();

            var deserialize = deserializerBuilder.BuildDelegate <dynamic>(schema);
            var serialize   = serializerBuilder.BuildDelegate <dynamic>(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal((float)value, deserialize(ref reader));
        }
        public void BoundaryDecimalValues(decimal value)
        {
            var schema = new BytesSchema()
            {
                LogicalType = new DecimalLogicalType(29, 14),
            };

            var deserialize = deserializerBuilder.BuildDelegate <decimal>(schema);
            var serialize   = serializerBuilder.BuildDelegate <decimal>(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(value, deserialize(ref reader));
        }
        public void MicrosecondTimestampLogicalTypeToDateTimeType(DateTime value)
        {
            var schema = new LongSchema()
            {
                LogicalType = new MicrosecondTimestampLogicalType(),
            };

            var deserialize = deserializerBuilder.BuildDelegate <DateTime>(schema);
            var serialize   = serializerBuilder.BuildDelegate <DateTime>(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(value, deserialize(ref reader));
        }
Пример #8
0
        public void DynamicGuidValues(Guid value)
        {
            var schema = new StringSchema()
            {
                LogicalType = new UuidLogicalType(),
            };

            var deserialize = deserializerBuilder.BuildDelegate <dynamic>(schema);
            var serialize   = serializerBuilder.BuildDelegate <dynamic>(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(value.ToString(), deserialize(ref reader));
        }
        public void DefaultEnumValues()
        {
            var schema = new EnumSchema("ordinal", new[] { "NONE", "FIRST", "SECOND", "THIRD", "FOURTH", "FIFTH" })
            {
                Default = "NONE",
            };

            var deserialize = deserializerBuilder.BuildDelegate <ImplicitEnum>(schema);
            var serialize   = serializerBuilder.BuildDelegate <string>(schema);

            using (stream)
            {
                serialize("FIFTH", new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(ImplicitEnum.None, deserialize(ref reader));
        }
        public void DictionaryValues(Dictionary <DateTime, string> value)
        {
            var schema = new MapSchema(new StringSchema());

            var deserialize = deserializerBuilder.BuildDelegate <Dictionary <DateTime, string> >(schema);
            var serialize   = serializerBuilder.BuildDelegate <Dictionary <DateTime, string> >(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(value, deserialize(ref reader));
        }
        public void ArrayValues(long[] value)
        {
            var schema = new ArraySchema(new LongSchema());

            var deserialize = deserializerBuilder.BuildDelegate <long[]>(schema);
            var serialize   = serializerBuilder.BuildDelegate <long[]>(schema);

            using (stream)
            {
                serialize(value, new Utf8JsonWriter(stream));
            }

            var reader = new Utf8JsonReader(stream.ToArray());

            Assert.Equal(value, deserialize(ref reader));
        }