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));
        }
Example #3
0
        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);
        }
Example #9
0
        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));
        }
Example #10
0
        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));
        }
Example #11
0
 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()));
     }
 }
Example #12
0
 private void assertValueEqual(JsonValue val1, JsonValue val2)
 {
     Assert.IsTrue(val1.Equals(val2));
 }
Example #13
0
 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()));
 }
Example #14
0
 private void assertValueNotEqual(JsonValue val1, JsonValue val2)
 {
     Assert.IsFalse(val1.Equals(val2));
 }
Example #15
0
 private void assertValueEqual(JsonValue val1, JsonValue val2)
 {
     Assert.IsTrue(val1.Equals(val2));
 }
Example #16
0
    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);
    }
Example #17
0
 public bool Equals(JsonDataString other)
 {
     return(_innerJsonValue.Equals(other.JsonValue));
 }
Example #18
0
 private void assertValueNotEqual(JsonValue val1, JsonValue val2)
 {
     Assert.IsFalse(val1.Equals(val2));
 }