public void ChangeDataTypeTest_Booleans() { JValue jValue; // Valid bool jValue = new JValue("true"); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Boolean); Assert.AreEqual(true, jValue.Value); jValue = new JValue("TRUE"); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Boolean); Assert.AreEqual(true, jValue.Value); jValue = new JValue("True"); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Boolean); Assert.AreEqual(true, jValue.Value); jValue = new JValue("FaLsE"); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Boolean); Assert.AreEqual(false, jValue.Value); // Null bool jValue = new JValue((bool?)null); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Boolean); Assert.AreEqual(null, jValue.Value); // Bool source jValue = new JValue(true); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Boolean); Assert.AreEqual(true, jValue.Value); }
public void ChangeDataTypeTest_Empty() { JValue jValue; // Empty - null jValue = new JValue(""); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Number); Assert.AreEqual(null, jValue.Value); // Empty - null jValue = new JValue((string)null); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Number); Assert.AreEqual(null, jValue.Value); }
public void ChangeDataTypeTest_ArraysWithComplexObjects() { // Array var jObject = JObject.Parse(@"{ ""arr"": { ""prop1"": 111 } }"); var jToken = jObject.SelectTokens("$.arr").First(); JsonTypeEnforcer.ChangeDataType(jToken, JsonDataType.Array); var jArray = (JArray)jObject.SelectToken("$.arr"); Assert.AreEqual(1, jArray.Count); Assert.AreEqual(111, jArray[0]["prop1"].Value <int>()); }
public void ChangeDataTypeTest_Arrays() { // Array var jObject = JObject.Parse(@"{ ""arr"": 111 }"); var jValue = (JValue)jObject.SelectTokens("$.arr").First(); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Array); var jArray = (JArray)jObject.SelectToken("$.arr"); Assert.AreEqual(1, jArray.Count); Assert.AreEqual(111, jArray[0]); }
public void ChangeDataTypeTest_Number() { JValue jValue; // Valid number jValue = new JValue("1.23"); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Number); Assert.AreEqual(1.23, jValue.Value); // Invalid number - do nothing jValue = new JValue("foo"); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Number); Assert.AreEqual("foo", jValue.Value); // Source is number - do nothing jValue = new JValue(1.23); JsonTypeEnforcer.ChangeDataType(jValue, JsonDataType.Number); Assert.AreEqual(1.23, jValue.Value); }