Пример #1
0
        public void GivenPrimaryType_Get_MustParsedValue()
        {
            var visitor = new JsonVisitor("1");
            var val     = JsonVisitorExtensions.TryGet(visitor, typeof(int), out var res);

            Assert.IsTrue(val);
            Assert.AreEqual(1, res);

            visitor = new JsonVisitor("1.123");
            val     = JsonVisitorExtensions.TryGet(visitor, typeof(double), out res);
            Assert.IsTrue(val);
            Assert.AreEqual(1.123d, res);

            visitor = new JsonVisitor("1.123");
            val     = JsonVisitorExtensions.TryGet <double>(visitor, out var dres);
            Assert.IsTrue(val);
            Assert.AreEqual(1.123d, dres);

            visitor = new JsonVisitor("1.123");
            val     = JsonVisitorExtensions.TryGet <double?>(visitor, out var ndres);
            Assert.IsTrue(val);
            Assert.AreEqual(1.123d, ndres.Value);

            visitor = new JsonVisitor("1");
            val     = JsonVisitorExtensions.TryGet <Colors>(visitor, out var color);
            Assert.IsTrue(val);
            Assert.AreEqual(Colors.Red, color);
        }
Пример #2
0
        public void ParesFail_MustOutException(string value, Type type)
        {
            var visitor = new JsonVisitor(value);
            var val     = JsonVisitorExtensions.TryGet(visitor, type, out var ex, out var res);

            Assert.IsFalse(val);
            Assert.IsNotNull(ex);
        }
Пример #3
0
        public void PasePrimary_MustPass(string value, Type type)
        {
            var visitor = new JsonVisitor(value);
            var val     = JsonVisitorExtensions.TryGet(visitor, type, out var ex, out var res);

            Assert.IsTrue(val);
            Assert.IsNull(ex);
            Assert.IsInstanceOfType(res, type);
        }
Пример #4
0
        public void ParseToString_MustReturnOrigin()
        {
            var visitor = new JsonVisitor("aaa");
            var val     = JsonVisitorExtensions.TryGet(visitor, typeof(string), out var ex, out var res);

            Assert.IsTrue(val);
            Assert.IsNull(ex);
            Assert.AreEqual(visitor.ToString(), res);
        }
Пример #5
0
        public void ParseEnum_MustPass()
        {
            var visitor = new JsonVisitor("1");
            var val     = JsonVisitorExtensions.TryGet(visitor, typeof(Colors), out var ex, out var res);

            Assert.IsTrue(val);
            Assert.IsNull(ex);
            Assert.AreEqual(Colors.Red, res);
        }
Пример #6
0
        public void PaseNullableType_MustReturnValue(string value, Type type)
        {
            var t       = Nullable.GetUnderlyingType(type);
            var visitor = new JsonVisitor(value);
            var val     = JsonVisitorExtensions.TryGet(visitor, type, out var ex, out var res);

            Assert.IsTrue(val);
            Assert.IsNull(ex);
            Assert.IsInstanceOfType(res, t);
        }
Пример #7
0
        public void GivenNullCall_MustThrowException()
        {
            var visitor = new JsonVisitor();
            var type    = typeof(object);

            Assert.ThrowsException <ArgumentNullException>(() => JsonVisitorExtensions.TryGet(null, type, out _));
            Assert.ThrowsException <ArgumentNullException>(() => JsonVisitorExtensions.TryGet(visitor, null, out _));
            Assert.ThrowsException <ArgumentNullException>(() => JsonVisitorExtensions.TryGet <object>(null, out _));
            Assert.ThrowsException <ArgumentNullException>(() => JsonVisitorExtensions.TryGet <object>(null, out _, out _));
            Assert.ThrowsException <ArgumentNullException>(() => JsonVisitorExtensions.TryGet(null, typeof(int), out _, out _));
            Assert.ThrowsException <ArgumentNullException>(() => JsonVisitorExtensions.TryGet(visitor, null, out _, out _));
        }
Пример #8
0
        public void GivenCannotConvertValue_MustPaseFail()
        {
            var visitor = new JsonVisitor("a");
            var val     = JsonVisitorExtensions.TryGet(visitor, typeof(int), out var res);

            Assert.IsFalse(val);

            visitor = new JsonVisitor("a");
            val     = JsonVisitorExtensions.TryGet <int>(visitor, out _);
            Assert.IsFalse(val);

            visitor = new JsonVisitor("a");
            val     = JsonVisitorExtensions.TryGet <object>(visitor, out _);
            Assert.IsFalse(val);

            visitor = new JsonVisitor("a");
            val     = JsonVisitorExtensions.TryGet <object>(visitor, out var ex, out _);
            Assert.IsFalse(val);
        }