From fc06cd918ca60b77b167008576b210d000f59988 Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Sat, 9 Jan 2016 13:31:12 +1300 Subject: [PATCH] -Tests --- .../Linq/JTokenReaderTest.cs | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/Src/Newtonsoft.Json.Tests/Linq/JTokenReaderTest.cs b/Src/Newtonsoft.Json.Tests/Linq/JTokenReaderTest.cs index f6031120..1a54f5c1 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/JTokenReaderTest.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/JTokenReaderTest.cs @@ -39,6 +39,9 @@ using NUnit.Framework; #endif using Newtonsoft.Json; using System.IO; +#if !(NET20 || NET35 || PORTABLE40 || PORTABLE) +using System.Numerics; +#endif using Newtonsoft.Json.Linq; using Newtonsoft.Json.Tests.Serialization; using Newtonsoft.Json.Tests.TestObjects; @@ -742,6 +745,21 @@ namespace Newtonsoft.Json.Tests.Linq "Error reading double. Unexpected token: StartArray. Path ''."); } + [Test] + public void ReadAsBoolean_InvalidToken() + { + JArray a = new JArray + { + 1, 2 + }; + + JTokenReader reader = new JTokenReader(a); + + ExceptionAssert.Throws( + () => { reader.ReadAsBoolean(); }, + "Error reading boolean. Unexpected token: StartArray. Path ''."); + } + [Test] public void ReadAsDateTime_InvalidToken() { @@ -844,6 +862,48 @@ namespace Newtonsoft.Json.Tests.Linq Assert.AreEqual(1d, reader.ReadAsDouble()); } +#if !(NET20 || NET35 || PORTABLE40 || PORTABLE) + [Test] + public void ReadAsBoolean_BigInteger_Success() + { + JValue s = new JValue(BigInteger.Parse("99999999999999999999999999999999999999999999999999999999999999999999999999")); + + JTokenReader reader = new JTokenReader(s); + + Assert.AreEqual(true, reader.ReadAsBoolean()); + } +#endif + + [Test] + public void ReadAsBoolean_String_Success() + { + JValue s = JValue.CreateString("true"); + + JTokenReader reader = new JTokenReader(s); + + Assert.AreEqual(true, reader.ReadAsBoolean()); + } + + [Test] + public void ReadAsBoolean_Null_Success() + { + JValue n = JValue.CreateNull(); + + JTokenReader reader = new JTokenReader(n); + + Assert.AreEqual(null, reader.ReadAsBoolean()); + } + + [Test] + public void ReadAsBoolean_Integer_Success() + { + JValue n = new JValue(1); + + JTokenReader reader = new JTokenReader(n); + + Assert.AreEqual(true, reader.ReadAsBoolean()); + } + [Test] public void ReadAsDateTime_Null_Success() {