public void Parse_to_generic_model_and_compare_for_equality(string input1, string input2) { JsonValue jsonValue1 = Serializer.Parse(input1); JsonValue jsonValue2 = Serializer.Parse(input2 ?? input1); Assert.That(jsonValue1.Equals(jsonValue2)); Assert.That(jsonValue1.Equals(jsonValue1)); Assert.That(jsonValue1.GetHashCode(), Is.EqualTo(jsonValue2.GetHashCode())); }
public void Equals_BooleanValue_ReturnsFalse() { var json = new JsonValue(true); var boolean = false; Assert.IsFalse(json.Equals(boolean)); }
private void Validate(object expected, JsonValue actual) { switch (actual) { case JsonArrayValue actualArray: if (expected is object[] expectedArray) { Assert.IsTrue(this.ValidateArray(expectedArray, actualArray)); return; } Assert.Fail("Value is array, expected something else."); break; case JsonObjectValue actualObject: if (expected is object[] expectedObject) { Assert.IsTrue(this.ValidateObject(expectedObject, actualObject)); return; } Assert.Fail("Value is object, expected something else."); break; } Assert.IsNotNull(actual); Assert.IsTrue(actual.Equals(expected)); }
public void Equals_SameTypeSameValue_ReturnsTrue() { var json1 = new JsonValue(42); var json2 = new JsonValue(42); Assert.IsTrue(json1.Equals(json2)); }
public void Equals_NumberValue_ReturnsFalse() { var json = new JsonValue(42); var number = 43; Assert.IsFalse(json.Equals(number)); }
public void Equals_StringValue_ReturnsFalse() { var json = new JsonValue("42"); var str = "43"; Assert.IsFalse(json.Equals(str)); }
public void Equals_DifferentTypeDifferentValues_ReturnsFalse() { var json1 = new JsonValue(42); var json2 = new JsonValue("42"); Assert.IsFalse(json1.Equals(json2)); }
public void Parse_to_generic_model_and_compare_for_inequality(string input1, string input2) { JsonValue jsonValue1 = Serializer.Parse(input1); JsonValue jsonValue2 = Serializer.Parse(input2); // of course, there is no guarantee for no collision! // still, the tests will ensure that there are no collisions for our test input. Assert.That(jsonValue1.GetHashCode(), Is.Not.EqualTo(jsonValue2.GetHashCode())); Assert.That(jsonValue1.Equals(jsonValue2), Is.False); }
public void TestJsonComplexAndToString() { var constructed = new JsonDict { { "thingy", 47 }, { "stuff", 47.1 }, { "bla", null }, { "sub", new JsonDict { { "wah", "gah" }, { "em", new JsonList { } }, { "fu", new JsonList { 1, null, new JsonDict { { "wow", new JsonDict { } } }, "2" } } } }, { "more", true } }; JsonValue parsed = null; Assert.DoesNotThrow(() => { parsed = JsonValue.Parse("{ \"bla\": null, \"stuff\": 47.1, \"more\": true, \"sub\": { \"em\": [], \"fu\": [1, null, { \"wow\": {} }, \"2\"], \"wah\": \"gah\" }, \"thingy\": 47 }"); }); Assert.IsNotNull(parsed); JsonValue reparsed = null; Assert.DoesNotThrow(() => { reparsed = JsonValue.Parse(parsed.ToString()); }); Assert.IsNotNull(reparsed); JsonValue reparsed2 = null; Assert.DoesNotThrow(() => { reparsed2 = JsonValue.Parse(constructed.ToString()); }); Assert.IsNotNull(reparsed2); Assert.IsTrue(parsed.Equals(constructed)); Assert.IsTrue(parsed.Equals(reparsed)); Assert.IsTrue(constructed.Equals(reparsed2)); }
public void Issue56_InconsistentNullAssignment() { JsonValue json1 = null; // this is actually null string myVar = null; JsonValue json2 = myVar; // this is JsonValue.Null Assert.IsNull(json1); Assert.IsTrue(Equals(null, json1)); Assert.IsNotNull(json2); Assert.IsTrue(null == json2); // R# isn't considering my == overload // ReSharper disable once HeuristicUnreachableCode Assert.IsTrue(json2.Equals(null)); // This may seem inconsistent, but check out the notes in the issue. Assert.IsFalse(Equals(null, json2)); }
private void assertJsonValueNotEqualComparison(JsonValue value) { Assert.IsFalse(value.Equals(null)); if (!(value is JsonBool)) { Assert.IsFalse(value.Equals(new JsonBool(true))); } if (!(value is JsonString)) { Assert.IsFalse(value.Equals(new JsonString("abc"))); } if (!(value is JsonNumber)) { Assert.IsFalse(value.Equals(JsonNumber.Create(47))); } if (!(value is JsonList)) { Assert.IsFalse(value.Equals(new JsonList())); } if (!(value is JsonDict)) { Assert.IsFalse(value.Equals(new JsonDict())); } }
private void assertValueEqual(JsonValue val1, JsonValue val2) { Assert.IsTrue(val1.Equals(val2)); }
private void assertJsonValueNotEqualComparison(JsonValue value) { Assert.IsFalse(value.Equals(null)); if (!(value is JsonBool)) Assert.IsFalse(value.Equals(new JsonBool(true))); if (!(value is JsonString)) Assert.IsFalse(value.Equals(new JsonString("abc"))); if (!(value is JsonNumber)) Assert.IsFalse(value.Equals(JsonNumber.Create(47))); if (!(value is JsonList)) Assert.IsFalse(value.Equals(new JsonList())); if (!(value is JsonDict)) Assert.IsFalse(value.Equals(new JsonDict())); }
private void assertValueNotEqual(JsonValue val1, JsonValue val2) { Assert.IsFalse(val1.Equals(val2)); }
public void Equality() { // object JsonValue one = new JsonValue { {"one", 1}, {"two", 2} }; JsonValue two = new JsonValue { {"one", 1}, {"two", 2} }; JsonValue three = new JsonValue { {"one", 1}, {"two", 2}, {"three", 3} }; Assert.That(one.Equals(two), Is.True); Assert.That(one.Equals(three), Is.False); // array one = new JsonValue { 1, 2, 3 }; two = new JsonValue { 1, 2, 3 }; three = new JsonValue { 3, 2, 1 }; Assert.That(one.Equals(two), Is.True); Assert.That(one.Equals(three), Is.False); // string one = "one"; two = "one"; three = "two"; Assert.That(one.Equals(two), Is.True); Assert.That(one.Equals(three), Is.False); // bool one = true; two = true; three = false; Assert.That(one.Equals(two), Is.True); Assert.That(one.Equals(three), Is.False); // int one = 1; two = 1; three = 2; Assert.That(one.Equals(two), Is.True); Assert.That(one.Equals(three), Is.False); // float one = 1f; two = 1f; three = 2f; Assert.That(one.Equals(two), Is.True); Assert.That(one.Equals(three), Is.False); }
public bool Equals(JsonDataString other) { return(_innerJsonValue.Equals(other.JsonValue)); }