Beispiel #1
0
        public void JsonExpressionWriter_DateTimeOffset()
        {
            Roundtrip(
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(0)),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(1)),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(-1)),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, 9, new TimeSpan(2, 30, 0)),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, 98, new TimeSpan(-8, 30, 0)),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, 987, TimeSpan.FromHours(5)),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(1)).AddTicks(1),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(-1)).AddTicks(12),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(2)).AddTicks(123),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(-2)).AddTicks(1234),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(9)).AddTicks(12345),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(-10)).AddTicks(123456),
                new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.FromHours(11)).AddTicks(1234567)
                );

            var w = new JsonExpressionWriter()
            {
                DateFormatString = "dd/MM/yyyy"
            };

            w.WriteValue(new DateTimeOffset(1983, 2, 11, 3, 14, 15, TimeSpan.Zero));
            w.Flush();
            Assert.AreEqual("\"11/02/1983\"", w.Expression.ToString());
        }
Beispiel #2
0
        public void JsonExpressionWriter_DateTime()
        {
            Roundtrip(
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Unspecified),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Local),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Utc),
                new DateTime(1983, 2, 11, 3, 14, 15, 9, DateTimeKind.Utc),
                new DateTime(1983, 2, 11, 3, 14, 15, 98, DateTimeKind.Utc),
                new DateTime(1983, 2, 11, 3, 14, 15, 987, DateTimeKind.Utc),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Utc).AddTicks(1),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Utc).AddTicks(12),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Utc).AddTicks(123),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Utc).AddTicks(1234),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Utc).AddTicks(12345),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Utc).AddTicks(123456),
                new DateTime(1983, 2, 11, 3, 14, 15, DateTimeKind.Utc).AddTicks(1234567)
                );

            var w = new JsonExpressionWriter()
            {
                DateFormatString = "dd/MM/yyyy"
            };

            w.WriteValue(new DateTime(1983, 2, 11, 3, 14, 15));
            w.Flush();
            Assert.AreEqual("\"11/02/1983\"", w.Expression.ToString());
        }
Beispiel #3
0
        private static Expression Serialize(FloatFormatHandling ffh, object obj)
        {
            var ser = new JsonSerializer();

            using var writer = new JsonExpressionWriter()
                  {
                      FloatFormatHandling = ffh
                  };

            ser.Serialize(writer, obj);
            writer.Flush();

            return(writer.Expression);
        }
Beispiel #4
0
        public void JsonExpressionWriter_Primitives_NullableDouble()
        {
            Roundtrip(
                new { a = (double?)null },
                new { a = (double?)0.0 },
                new { a = (double?)1.0 }
                );

            var w = new JsonExpressionWriter();

            w.WriteValue((double?)null);
            w.Flush();
            Assert.AreEqual("null", w.Expression.ToString());
        }
Beispiel #5
0
        public void JsonExpressionWriter_String()
        {
            Roundtrip(new object[] {
                null,
                " ",
                "bar",
                "I am Bart",
                "Hello \"Bart\"!",
                "Some\tweird\r\ncharacters..."
            });

            var w = new JsonExpressionWriter();

            w.WriteValue((string)null);
            w.Flush();
            Assert.AreEqual("null", w.Expression.ToString());
        }
Beispiel #6
0
        public void JsonExpressionWriter_Basics()
        {
            var writer = new JsonExpressionWriter();

            writer.WriteValue(42);

            writer.Flush();

            var expr     = writer.Expression;
            var constant = expr as ConstantExpression;

            Assert.IsNotNull(constant);
            Assert.AreEqual(ExpressionType.Number, constant.NodeType);
            Assert.AreEqual("42", (string)constant.Value);

            ((IDisposable)writer).Dispose();

            Assert.ThrowsException <ObjectDisposedException>(() => writer.WriteValue(43));
            Assert.ThrowsException <ObjectDisposedException>(() => writer.Expression);
        }