fix: refactor tests

context: the backslash unit tests cannot be in the complete document as uriFragmentNotationRoot() will fail due to backslash handling
This commit is contained in:
katldewitt 2021-10-28 05:59:22 -07:00
parent 669316d29e
commit 3ed9154f63

View File

@ -43,7 +43,7 @@ public class JSONPointerTest {
private static final String EXPECTED_COMPLETE_DOCUMENT = "{\"\":0,\" \":7,\"g|h\":4,\"c%d\":2,\"k\\\"l\":6,\"a/b\":1,\"i\\\\j\":5," + 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\"}," + "\"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," + "\"other~key\":{\"another/key\":[\"val\"]},\"key\":\"value\"},\"foo\":[\"bar\",\"baz\"],\"e^f\":3," +
"\"m~n\":8,\"four\\\\\\\\slashes\":\"slash test!\"}"; "\"m~n\":8}";
static { static {
@ -125,17 +125,6 @@ public class JSONPointerTest {
public void backslashHandling() { public void backslashHandling() {
assertEquals(5, query("/i\\j")); assertEquals(5, query("/i\\j"));
} }
/**
* When creating a jsonObject we need to parse escaped characters "\\\\"
* --> it's the string representation of "\\", so when query'ing via the JSONPointer
* we DON'T escape them
*
*/
@Test
public void multipleBackslashHandling() {
assertEquals("slash test!", query("/four\\\\slashes"));
}
/** /**
* We pass quotations as-is * We pass quotations as-is
@ -403,8 +392,10 @@ public class JSONPointerTest {
} }
/** /**
* KD added - this should pass * When creating a jsonObject we need to parse escaped characters "\\\\"
* Coverage for JSONObject query(JSONPointer) * --> it's the string representation of "\\", so when query'ing via the JSONPointer
* we DON'T escape them
*
*/ */
@Test @Test
public void queryFromJSONObjectUsingPointer0() { public void queryFromJSONObjectUsingPointer0() {
@ -416,8 +407,11 @@ public class JSONPointerTest {
"}"; "}";
JSONObject jsonObject = new JSONObject(str); JSONObject jsonObject = new JSONObject(str);
//Summary of issue: When a KEY in the jsonObject is "\\\\" --> it's held //Summary of issue: When a KEY in the jsonObject is "\\\\" --> it's held
// as "\\" which makes it impossible to get back where expected // as "\\" which means when querying, we need to use "\\"
Object obj = jsonObject.optQuery(new JSONPointer("/\\")); Object twoBackslahObj = jsonObject.optQuery(new JSONPointer("/\\"));
assertEquals("slash test", obj); assertEquals("slash test", twoBackslahObj);
Object fourBackslashObj = jsonObject.optQuery(new JSONPointer("/string\\\\Key"));
assertEquals("hello world!", fourBackslashObj);
} }
} }