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); }
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); }
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); }
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); }
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); }
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); }
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 _)); }
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); }