This commit is contained in:
James Newton-King
2016-01-09 13:31:12 +13:00
parent 2491737e52
commit fc06cd918c
@@ -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<JsonReaderException>(
() => { 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()
{