Refactor JSONPointerTest

This commit is contained in:
sreekesh93 2021-10-11 10:42:31 +05:30
parent d284c81e16
commit b4bbc58644

View File

@ -41,6 +41,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 +61,7 @@ public class JSONPointerTest {
@Test @Test
public void emptyPointer() { public void emptyPointer() {
assertSame(document, query("")); assertEquals(EXPECTED_COMPLETE_DOCUMENT, query("").toString());
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
@ -68,12 +72,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 +87,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 +123,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 +133,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("#")); assertEquals(EXPECTED_COMPLETE_DOCUMENT, query("#").toString());
} }
@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")