Merge pull request #631 from sreekesh93/techdebt/refactor-test

Refactor JSONPointerTest
This commit is contained in:
Sean Leary 2021-10-14 16:58:45 -05:00 committed by GitHub
commit 4e601fd46e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,7 +25,6 @@ SOFTWARE.
*/ */
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
@ -41,6 +40,10 @@ import org.junit.Test;
public class JSONPointerTest { public class JSONPointerTest {
private static final JSONObject document; 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 { static {
@SuppressWarnings("resource") @SuppressWarnings("resource")
@ -57,7 +60,7 @@ public class JSONPointerTest {
@Test @Test
public void emptyPointer() { public void emptyPointer() {
assertSame(document, query("")); assertTrue(new JSONObject(EXPECTED_COMPLETE_DOCUMENT).similar(query("")));
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
@ -68,12 +71,12 @@ public class JSONPointerTest {
@Test @Test
public void objectPropertyQuery() { public void objectPropertyQuery() {
assertSame(document.get("foo"), query("/foo")); assertEquals("[\"bar\",\"baz\"]", query("/foo").toString());
} }
@Test @Test
public void arrayIndexQuery() { public void arrayIndexQuery() {
assertSame(document.getJSONArray("foo").get(0), query("/foo/0")); assertEquals("bar", query("/foo/0"));
} }
@Test(expected = JSONPointerException.class) @Test(expected = JSONPointerException.class)
@ -83,38 +86,33 @@ public class JSONPointerTest {
@Test @Test
public void queryByEmptyKey() { public void queryByEmptyKey() {
assertSame(document.get(""), query("/")); assertEquals(0, query("/"));
} }
@Test @Test
public void queryByEmptyKeySubObject() { 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 @Test
public void queryByEmptyKeySubObjectSubOject() { public void queryByEmptyKeySubObjectSubOject() {
assertSame( assertEquals("empty key of an object with an empty key", query("/obj//"));
document.getJSONObject("obj").getJSONObject("").get(""),
query("/obj//")
);
} }
@Test @Test
public void queryByEmptyKeySubObjectValue() { public void queryByEmptyKeySubObjectValue() {
assertSame( assertEquals("Some other value", query("/obj//subKey"));
document.getJSONObject("obj").getJSONObject("").get("subKey"),
query("/obj//subKey")
);
} }
@Test @Test
public void slashEscaping() { public void slashEscaping() {
assertSame(document.get("a/b"), query("/a~1b")); assertEquals(1, query("/a~1b"));
} }
@Test @Test
public void tildeEscaping() { public void tildeEscaping() {
assertSame(document.get("m~n"), query("/m~0n")); assertEquals(8, query("/m~0n"));
} }
/** /**
@ -124,7 +122,7 @@ public class JSONPointerTest {
*/ */
@Test @Test
public void backslashHandling() { public void backslashHandling() {
assertSame(document.get("i\\j"), query("/i\\j")); assertEquals(5, query("/i\\j"));
} }
/** /**
@ -134,30 +132,30 @@ public class JSONPointerTest {
*/ */
@Test @Test
public void quotationHandling() { public void quotationHandling() {
assertSame(document.get("k\"l"), query("/k\"l")); assertEquals(6, query("/k\"l"));
} }
@Test @Test
public void whitespaceKey() { public void whitespaceKey() {
assertSame(document.get(" "), query("/ ")); assertEquals(7, query("/ "));
} }
@Test @Test
public void uriFragmentNotation() { public void uriFragmentNotation() {
assertSame(document.get("foo"), query("#/foo")); assertEquals("[\"bar\",\"baz\"]", query("#/foo").toString());
} }
@Test @Test
public void uriFragmentNotationRoot() { public void uriFragmentNotationRoot() {
assertSame(document, query("#")); assertTrue(new JSONObject(EXPECTED_COMPLETE_DOCUMENT).similar(query("#")));
} }
@Test @Test
public void uriFragmentPercentHandling() { public void uriFragmentPercentHandling() {
assertSame(document.get("c%d"), query("#/c%25d")); assertEquals(2, query("#/c%25d"));
assertSame(document.get("e^f"), query("#/e%5Ef")); assertEquals(3, query("#/e%5Ef"));
assertSame(document.get("g|h"), query("#/g%7Ch")); assertEquals(4, query("#/g%7Ch"));
assertSame(document.get("m~n"), query("#/m~0n")); assertEquals(8, query("#/m~0n"));
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")