@@ -25,7 +25,6 @@ of this software and associated documentation files (the "Software"), to deal
2525*/
2626
2727import static org .junit .Assert .assertEquals ;
28- import static org .junit .Assert .assertSame ;
2928import static org .junit .Assert .assertTrue ;
3029import static org .junit .Assert .fail ;
3130
@@ -41,6 +40,10 @@ of this software and associated documentation files (the "Software"), to deal
4140public class JSONPointerTest {
4241
4342 private static final JSONObject document ;
43+ private static final String EXPECTED_COMPLETE_DOCUMENT = "{\" \" :0,\" \" :7,\" g|h\" :4,\" c%d\" :2,\" k\\ \" l\" :6,\" a/b\" :1,\" i\\ \\ j\" :5," +
44+ "\" obj\" :{\" \" :{\" \" :\" empty key of an object with an empty key\" ,\" subKey\" :\" Some other value\" }," +
45+ "\" other~key\" :{\" another/key\" :[\" val\" ]},\" key\" :\" value\" },\" foo\" :[\" bar\" ,\" baz\" ],\" e^f\" :3," +
46+ "\" m~n\" :8}" ;
4447
4548 static {
4649 @ SuppressWarnings ("resource" )
@@ -57,7 +60,7 @@ private Object query(String pointer) {
5760
5861 @ Test
5962 public void emptyPointer () {
60- assertSame ( document , query ("" ));
63+ assertTrue ( new JSONObject ( EXPECTED_COMPLETE_DOCUMENT ). similar ( query ("" ) ));
6164 }
6265
6366 @ SuppressWarnings ("unused" )
@@ -68,12 +71,12 @@ public void nullPointer() {
6871
6972 @ Test
7073 public void objectPropertyQuery () {
71- assertSame ( document . get ( "foo" ), query ("/foo" ));
74+ assertEquals ( "[ \" bar \" , \" baz \" ]" , query ("/foo" ). toString ( ));
7275 }
7376
7477 @ Test
7578 public void arrayIndexQuery () {
76- assertSame ( document . getJSONArray ( "foo" ). get ( 0 ) , query ("/foo/0" ));
79+ assertEquals ( "bar" , query ("/foo/0" ));
7780 }
7881
7982 @ Test (expected = JSONPointerException .class )
@@ -83,38 +86,33 @@ public void stringPropOfArrayFailure() {
8386
8487 @ Test
8588 public void queryByEmptyKey () {
86- assertSame ( document . get ( "" ) , query ("/" ));
89+ assertEquals ( 0 , query ("/" ));
8790 }
8891
8992 @ Test
9093 public void queryByEmptyKeySubObject () {
91- assertSame (document .getJSONObject ("obj" ).getJSONObject ("" ), query ("/obj/" ));
94+ assertEquals ( "{\" \" :\" empty key of an object with an empty key\" ,\" subKey\" :\" Some" +
95+ " other value\" }" , query ("/obj/" ).toString ());
9296 }
9397
9498 @ Test
9599 public void queryByEmptyKeySubObjectSubOject () {
96- assertSame (
97- document .getJSONObject ("obj" ).getJSONObject ("" ).get ("" ),
98- query ("/obj//" )
99- );
100+ assertEquals ("empty key of an object with an empty key" , query ("/obj//" ));
100101 }
101102
102103 @ Test
103104 public void queryByEmptyKeySubObjectValue () {
104- assertSame (
105- document .getJSONObject ("obj" ).getJSONObject ("" ).get ("subKey" ),
106- query ("/obj//subKey" )
107- );
105+ assertEquals ("Some other value" , query ("/obj//subKey" ));
108106 }
109107
110108 @ Test
111109 public void slashEscaping () {
112- assertSame ( document . get ( "a/b" ) , query ("/a~1b" ));
110+ assertEquals ( 1 , query ("/a~1b" ));
113111 }
114112
115113 @ Test
116114 public void tildeEscaping () {
117- assertSame ( document . get ( "m~n" ) , query ("/m~0n" ));
115+ assertEquals ( 8 , query ("/m~0n" ));
118116 }
119117
120118 /**
@@ -124,7 +122,7 @@ public void tildeEscaping() {
124122 */
125123 @ Test
126124 public void backslashHandling () {
127- assertSame ( document . get ( "i \\ j" ) , query ("/i\\ j" ));
125+ assertEquals ( 5 , query ("/i\\ j" ));
128126 }
129127
130128 /**
@@ -134,30 +132,30 @@ public void backslashHandling() {
134132 */
135133 @ Test
136134 public void quotationHandling () {
137- assertSame ( document . get ( "k \" l" ) , query ("/k\" l" ));
135+ assertEquals ( 6 , query ("/k\" l" ));
138136 }
139137
140138 @ Test
141139 public void whitespaceKey () {
142- assertSame ( document . get ( " " ) , query ("/ " ));
140+ assertEquals ( 7 , query ("/ " ));
143141 }
144142
145143 @ Test
146144 public void uriFragmentNotation () {
147- assertSame ( document . get ( "foo" ), query ("#/foo" ));
145+ assertEquals ( "[ \" bar \" , \" baz \" ]" , query ("#/foo" ). toString ( ));
148146 }
149147
150148 @ Test
151149 public void uriFragmentNotationRoot () {
152- assertSame ( document , query ("#" ));
150+ assertTrue ( new JSONObject ( EXPECTED_COMPLETE_DOCUMENT ). similar ( query ("#" ) ));
153151 }
154152
155153 @ Test
156154 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" ));
155+ assertEquals ( 2 , query ("#/c%25d" ));
156+ assertEquals ( 3 , query ("#/e%5Ef" ));
157+ assertEquals ( 4 , query ("#/g%7Ch" ));
158+ assertEquals ( 8 , query ("#/m~0n" ));
161159 }
162160
163161 @ SuppressWarnings ("unused" )
0 commit comments