From b4bbc586443eb15a817ccce93469e9468c4e5c7c Mon Sep 17 00:00:00 2001 From: sreekesh93 Date: Mon, 11 Oct 2021 10:42:31 +0530 Subject: [PATCH 1/3] Refactor JSONPointerTest --- .../java/org/json/junit/JSONPointerTest.java | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/test/java/org/json/junit/JSONPointerTest.java b/src/test/java/org/json/junit/JSONPointerTest.java index a72af3d0d..9a7225a05 100644 --- a/src/test/java/org/json/junit/JSONPointerTest.java +++ b/src/test/java/org/json/junit/JSONPointerTest.java @@ -41,6 +41,10 @@ of this software and associated documentation files (the "Software"), to deal public class JSONPointerTest { private static final JSONObject document; + private static final String EXPECTED_COMPLETE_DOCUMENT = "{\"\":0,\" \":7,\"g|h\":4,\"c%d\":2,\"k\\\"l\":6,\"a/b\":1,\"i\\\\j\":5," + + "\"obj\":{\"\":{\"\":\"empty key of an object with an empty key\",\"subKey\":\"Some other value\"}," + + "\"other~key\":{\"another/key\":[\"val\"]},\"key\":\"value\"},\"foo\":[\"bar\",\"baz\"],\"e^f\":3," + + "\"m~n\":8}"; static { @SuppressWarnings("resource") @@ -57,7 +61,7 @@ private Object query(String pointer) { @Test public void emptyPointer() { - assertSame(document, query("")); + assertEquals(EXPECTED_COMPLETE_DOCUMENT, query("").toString()); } @SuppressWarnings("unused") @@ -68,12 +72,12 @@ public void nullPointer() { @Test public void objectPropertyQuery() { - assertSame(document.get("foo"), query("/foo")); + assertEquals("[\"bar\",\"baz\"]", query("/foo").toString()); } @Test public void arrayIndexQuery() { - assertSame(document.getJSONArray("foo").get(0), query("/foo/0")); + assertEquals("bar", query("/foo/0")); } @Test(expected = JSONPointerException.class) @@ -83,38 +87,33 @@ public void stringPropOfArrayFailure() { @Test public void queryByEmptyKey() { - assertSame(document.get(""), query("/")); + assertEquals(0, query("/")); } @Test public void queryByEmptyKeySubObject() { - assertSame(document.getJSONObject("obj").getJSONObject(""), query("/obj/")); + assertEquals( "{\"\":\"empty key of an object with an empty key\",\"subKey\":\"Some" + + " other value\"}", query("/obj/").toString()); } @Test public void queryByEmptyKeySubObjectSubOject() { - assertSame( - document.getJSONObject("obj").getJSONObject("").get(""), - query("/obj//") - ); + assertEquals("empty key of an object with an empty key", query("/obj//")); } @Test public void queryByEmptyKeySubObjectValue() { - assertSame( - document.getJSONObject("obj").getJSONObject("").get("subKey"), - query("/obj//subKey") - ); + assertEquals("Some other value", query("/obj//subKey")); } @Test public void slashEscaping() { - assertSame(document.get("a/b"), query("/a~1b")); + assertEquals(1, query("/a~1b")); } @Test public void tildeEscaping() { - assertSame(document.get("m~n"), query("/m~0n")); + assertEquals(8, query("/m~0n")); } /** @@ -124,7 +123,7 @@ public void tildeEscaping() { */ @Test public void backslashHandling() { - assertSame(document.get("i\\j"), query("/i\\j")); + assertEquals(5, query("/i\\j")); } /** @@ -134,30 +133,30 @@ public void backslashHandling() { */ @Test public void quotationHandling() { - assertSame(document.get("k\"l"), query("/k\"l")); + assertEquals(6, query("/k\"l")); } @Test public void whitespaceKey() { - assertSame(document.get(" "), query("/ ")); + assertEquals(7, query("/ ")); } @Test public void uriFragmentNotation() { - assertSame(document.get("foo"), query("#/foo")); + assertEquals("[\"bar\",\"baz\"]", query("#/foo").toString()); } @Test public void uriFragmentNotationRoot() { - assertSame(document, query("#")); + assertEquals(EXPECTED_COMPLETE_DOCUMENT, query("#").toString()); } @Test public void uriFragmentPercentHandling() { - assertSame(document.get("c%d"), query("#/c%25d")); - assertSame(document.get("e^f"), query("#/e%5Ef")); - assertSame(document.get("g|h"), query("#/g%7Ch")); - assertSame(document.get("m~n"), query("#/m~0n")); + assertEquals(2, query("#/c%25d")); + assertEquals(3, query("#/e%5Ef")); + assertEquals(4, query("#/g%7Ch")); + assertEquals(8, query("#/m~0n")); } @SuppressWarnings("unused") From f03eb56071e6dec9723c346ffee7964d1fe3a90e Mon Sep 17 00:00:00 2001 From: sreekesh93 Date: Mon, 11 Oct 2021 19:46:27 +0530 Subject: [PATCH 2/3] Fix test to support oreder mismatch --- src/test/java/org/json/junit/JSONPointerTest.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/json/junit/JSONPointerTest.java b/src/test/java/org/json/junit/JSONPointerTest.java index 9a7225a05..ee24bf967 100644 --- a/src/test/java/org/json/junit/JSONPointerTest.java +++ b/src/test/java/org/json/junit/JSONPointerTest.java @@ -25,7 +25,6 @@ of this software and associated documentation files (the "Software"), to deal */ import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -61,7 +60,7 @@ private Object query(String pointer) { @Test public void emptyPointer() { - assertEquals(EXPECTED_COMPLETE_DOCUMENT, query("").toString()); + assertEquals(new JSONObject(EXPECTED_COMPLETE_DOCUMENT).toString(), query("").toString()); } @SuppressWarnings("unused") @@ -148,7 +147,7 @@ public void uriFragmentNotation() { @Test public void uriFragmentNotationRoot() { - assertEquals(EXPECTED_COMPLETE_DOCUMENT, query("#").toString()); + assertEquals(new JSONObject(EXPECTED_COMPLETE_DOCUMENT).toString(), query("#").toString()); } @Test From 9000901a11aa0793fa7f8adda5a35bb672565460 Mon Sep 17 00:00:00 2001 From: sreekesh93 Date: Mon, 11 Oct 2021 19:55:31 +0530 Subject: [PATCH 3/3] Fix test to support oreder mismatch --- src/test/java/org/json/junit/JSONPointerTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/json/junit/JSONPointerTest.java b/src/test/java/org/json/junit/JSONPointerTest.java index ee24bf967..89f1f6cd1 100644 --- a/src/test/java/org/json/junit/JSONPointerTest.java +++ b/src/test/java/org/json/junit/JSONPointerTest.java @@ -60,7 +60,7 @@ private Object query(String pointer) { @Test public void emptyPointer() { - assertEquals(new JSONObject(EXPECTED_COMPLETE_DOCUMENT).toString(), query("").toString()); + assertTrue(new JSONObject(EXPECTED_COMPLETE_DOCUMENT).similar(query(""))); } @SuppressWarnings("unused") @@ -147,7 +147,7 @@ public void uriFragmentNotation() { @Test public void uriFragmentNotationRoot() { - assertEquals(new JSONObject(EXPECTED_COMPLETE_DOCUMENT).toString(), query("#").toString()); + assertTrue(new JSONObject(EXPECTED_COMPLETE_DOCUMENT).similar(query("#"))); } @Test