@@ -41,6 +41,10 @@ of this software and associated documentation files (the "Software"), to deal
4141public class JSONPointerTest {
4242
4343 private static final JSONObject document ;
44+ private static final String EXPECTED_COMPLETE_DOCUMENT = "{\" \" :0,\" \" :7,\" g|h\" :4,\" c%d\" :2,\" k\\ \" l\" :6,\" a/b\" :1,\" i\\ \\ j\" :5," +
45+ "\" obj\" :{\" \" :{\" \" :\" empty key of an object with an empty key\" ,\" subKey\" :\" Some other value\" }," +
46+ "\" other~key\" :{\" another/key\" :[\" val\" ]},\" key\" :\" value\" },\" foo\" :[\" bar\" ,\" baz\" ],\" e^f\" :3," +
47+ "\" m~n\" :8}" ;
4448
4549 static {
4650 @ SuppressWarnings ("resource" )
@@ -57,7 +61,7 @@ private Object query(String pointer) {
5761
5862 @ Test
5963 public void emptyPointer () {
60- assertSame ( document , query ("" ));
64+ assertEquals ( EXPECTED_COMPLETE_DOCUMENT , query ("" ). toString ( ));
6165 }
6266
6367 @ SuppressWarnings ("unused" )
@@ -68,12 +72,12 @@ public void nullPointer() {
6872
6973 @ Test
7074 public void objectPropertyQuery () {
71- assertSame ( document . get ( "foo" ), query ("/foo" ));
75+ assertEquals ( "[ \" bar \" , \" baz \" ]" , query ("/foo" ). toString ( ));
7276 }
7377
7478 @ Test
7579 public void arrayIndexQuery () {
76- assertSame ( document . getJSONArray ( "foo" ). get ( 0 ) , query ("/foo/0" ));
80+ assertEquals ( "bar" , query ("/foo/0" ));
7781 }
7882
7983 @ Test (expected = JSONPointerException .class )
@@ -83,38 +87,33 @@ public void stringPropOfArrayFailure() {
8387
8488 @ Test
8589 public void queryByEmptyKey () {
86- assertSame ( document . get ( "" ) , query ("/" ));
90+ assertEquals ( 0 , query ("/" ));
8791 }
8892
8993 @ Test
9094 public void queryByEmptyKeySubObject () {
91- assertSame (document .getJSONObject ("obj" ).getJSONObject ("" ), query ("/obj/" ));
95+ assertEquals ( "{\" \" :\" empty key of an object with an empty key\" ,\" subKey\" :\" Some" +
96+ " other value\" }" , query ("/obj/" ).toString ());
9297 }
9398
9499 @ Test
95100 public void queryByEmptyKeySubObjectSubOject () {
96- assertSame (
97- document .getJSONObject ("obj" ).getJSONObject ("" ).get ("" ),
98- query ("/obj//" )
99- );
101+ assertEquals ("empty key of an object with an empty key" , query ("/obj//" ));
100102 }
101103
102104 @ Test
103105 public void queryByEmptyKeySubObjectValue () {
104- assertSame (
105- document .getJSONObject ("obj" ).getJSONObject ("" ).get ("subKey" ),
106- query ("/obj//subKey" )
107- );
106+ assertEquals ("Some other value" , query ("/obj//subKey" ));
108107 }
109108
110109 @ Test
111110 public void slashEscaping () {
112- assertSame ( document . get ( "a/b" ) , query ("/a~1b" ));
111+ assertEquals ( 1 , query ("/a~1b" ));
113112 }
114113
115114 @ Test
116115 public void tildeEscaping () {
117- assertSame ( document . get ( "m~n" ) , query ("/m~0n" ));
116+ assertEquals ( 8 , query ("/m~0n" ));
118117 }
119118
120119 /**
@@ -124,7 +123,7 @@ public void tildeEscaping() {
124123 */
125124 @ Test
126125 public void backslashHandling () {
127- assertSame ( document . get ( "i \\ j" ) , query ("/i\\ j" ));
126+ assertEquals ( 5 , query ("/i\\ j" ));
128127 }
129128
130129 /**
@@ -134,30 +133,30 @@ public void backslashHandling() {
134133 */
135134 @ Test
136135 public void quotationHandling () {
137- assertSame ( document . get ( "k \" l" ) , query ("/k\" l" ));
136+ assertEquals ( 6 , query ("/k\" l" ));
138137 }
139138
140139 @ Test
141140 public void whitespaceKey () {
142- assertSame ( document . get ( " " ) , query ("/ " ));
141+ assertEquals ( 7 , query ("/ " ));
143142 }
144143
145144 @ Test
146145 public void uriFragmentNotation () {
147- assertSame ( document . get ( "foo" ), query ("#/foo" ));
146+ assertEquals ( "[ \" bar \" , \" baz \" ]" , query ("#/foo" ). toString ( ));
148147 }
149148
150149 @ Test
151150 public void uriFragmentNotationRoot () {
152- assertSame ( document , query ("#" ));
151+ assertEquals ( EXPECTED_COMPLETE_DOCUMENT , query ("#" ). toString ( ));
153152 }
154153
155154 @ Test
156155 public void uriFragmentPercentHandling () {
157- assertSame ( document . get ( "c%d" ) , query ("#/c%25d" ));
158- assertSame ( document . get ( "e^f" ) , query ("#/e%5Ef" ));
159- assertSame ( document . get ( "g|h" ) , query ("#/g%7Ch" ));
160- assertSame ( document . get ( "m~n" ) , query ("#/m~0n" ));
156+ assertEquals ( 2 , query ("#/c%25d" ));
157+ assertEquals ( 3 , query ("#/e%5Ef" ));
158+ assertEquals ( 4 , query ("#/g%7Ch" ));
159+ assertEquals ( 8 , query ("#/m~0n" ));
161160 }
162161
163162 @ SuppressWarnings ("unused" )
0 commit comments