Skip to content

Commit 31cefdb

Browse files
committed
Tests for writers branch.
1 parent dc637e1 commit 31cefdb

13 files changed

Lines changed: 1709 additions & 305 deletions

‎src/test/java/org/json/junit/EnumTest.java‎

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@ public void jsonObjectFromEnum() {
5050

5151
// validate JSON content
5252
doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonObject.toString());
53-
assertTrue("expecting 2 items in top level object", ((Map<?,?>)(JsonPath.read(doc, "$"))).size() == 2);
54-
assertTrue("expecting 2 items in myEnumField object", ((Map<?,?>)(JsonPath.read(doc, "$.myEnumField"))).size() == 2);
55-
assertTrue("expecting 0 items in myEnum object", ((Map<?,?>)(JsonPath.read(doc, "$.myEnum"))).size() == 0);
56-
assertTrue("expecting 3", Integer.valueOf(3).equals(jsonObject.query("/myEnumField/intVal")));
57-
assertTrue("expecting val 3", "val 3".equals(jsonObject.query("/myEnumField/value")));
53+
assertTrue("expected 2 top level items", ((Map<?,?>)(JsonPath.read(doc, "$"))).size() == 2);
54+
assertTrue("expected 2 myEnumField items", "VAL3".equals((JsonPath.read(doc, "$.myEnumField"))));
55+
assertTrue("expected 0 myEnum items", "VAL1".equals((JsonPath.read(doc, "$.myEnum"))));
56+
57+
assertTrue("expecting MyEnumField.VAL3", MyEnumField.VAL3.equals(jsonObject.query("/myEnumField")));
58+
assertTrue("expecting MyEnum.VAL1", MyEnum.VAL1.equals(jsonObject.query("/myEnum")));
5859
}
5960

6061
/**
@@ -146,10 +147,10 @@ public void enumValueToString() {
146147
str2.equals(expectedStr2));
147148

148149
/**
149-
* However, an enum within another class will not be rendered
150-
* unless that class overrides default toString()
150+
* However, an enum within another class will be rendered as a bean
151+
* unless that class uses toJSONString() or appendJSON()
151152
*/
152-
String expectedStr3 = "\"org.json.junit.MyEnumClass@";
153+
String expectedStr3 = "{\"myEnum\":\"VAL1\",\"myEnumField\":\"VAL1\"}";
153154
myEnumClass.setMyEnum(MyEnum.VAL1);
154155
myEnumClass.setMyEnumField(MyEnumField.VAL1);
155156
String str3 = JSONObject.valueToString(myEnumClass);
@@ -185,10 +186,8 @@ public void enumToString() {
185186
// validate JSON content
186187
doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonObject.toString());
187188
assertTrue("expected 2 top level items", ((Map<?,?>)(JsonPath.read(doc, "$"))).size() == 2);
188-
assertTrue("expected 2 myEnumField items", ((Map<?,?>)(JsonPath.read(doc, "$.myEnumField"))).size() == 2);
189-
assertTrue("expected 0 myEnum items", ((Map<?,?>)(JsonPath.read(doc, "$.myEnum"))).size() == 0);
190-
assertTrue("expected 3", Integer.valueOf(3).equals(jsonObject.query("/myEnumField/intVal")));
191-
assertTrue("expected val 3", "val 3".equals(jsonObject.query("/myEnumField/value")));
189+
assertTrue("expected VAL3", "VAL3".equals((JsonPath.read(doc, "$.myEnumField"))));
190+
assertTrue("expected VAL1", "VAL1".equals((JsonPath.read(doc, "$.myEnum"))));
192191

193192
String [] names = JSONObject.getNames(myEnum);
194193
jsonObject = new JSONObject(myEnum, names);
@@ -238,18 +237,16 @@ public void enumToString() {
238237
*/
239238
@Test
240239
public void wrap() {
241-
MyEnum myEnum = MyEnum.VAL2;
242-
JSONObject jsonObject = (JSONObject)JSONObject.wrap(myEnum);
243-
assertTrue("simple enum has no getters", jsonObject.length() == 0);
240+
assertTrue("simple enum has no getters", JSONObject.wrap(MyEnum.VAL2) instanceof MyEnum);
244241

245242
MyEnumField myEnumField = MyEnumField.VAL2;
246-
jsonObject = (JSONObject)JSONObject.wrap(myEnumField);
243+
JSONObject jsonObject = new JSONObject();
244+
jsonObject.put("enum",myEnumField);
247245

248246
// validate JSON content
249247
Object doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonObject.toString());
250-
assertTrue("expected 2 top level items", ((Map<?,?>)(JsonPath.read(doc, "$"))).size() == 2);
251-
assertTrue("expected val 2", "val 2".equals(jsonObject.query("/value")));
252-
assertTrue("expected 2", Integer.valueOf(2).equals(jsonObject.query("/intVal")));
248+
assertTrue("expected 1 top level items", ((Map<?,?>)(JsonPath.read(doc, "$"))).size() == 1);
249+
assertTrue("expected VAL2", MyEnumField.VAL2.equals(jsonObject.query("/enum")));
253250

254251
MyEnumClass myEnumClass = new MyEnumClass();
255252
myEnumClass.setMyEnum(MyEnum.VAL1);
@@ -259,11 +256,11 @@ public void wrap() {
259256
// validate JSON content
260257
doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonObject.toString());
261258
assertTrue("expected 2 top level items", ((Map<?,?>)(JsonPath.read(doc, "$"))).size() == 2);
262-
assertTrue("expected 2 myEnumField items", ((Map<?,?>)(JsonPath.read(doc, "$.myEnumField"))).size() == 2);
263-
assertTrue("expected 0 myEnum items", ((Map<?,?>)(JsonPath.read(doc, "$.myEnum"))).size() == 0);
264-
assertTrue("expected 3", Integer.valueOf(3).equals(jsonObject.query("/myEnumField/intVal")));
265-
assertTrue("expected val 3", "val 3".equals(jsonObject.query("/myEnumField/value")));
259+
assertTrue("expected VAL3", "VAL3".equals((JsonPath.read(doc, "$.myEnumField"))));
260+
assertTrue("expected VAL1", "VAL1".equals((JsonPath.read(doc, "$.myEnum"))));
266261

262+
assertTrue("expecting MyEnumField.VAL3", MyEnumField.VAL3.equals(jsonObject.query("/myEnumField")));
263+
assertTrue("expecting MyEnum.VAL1", MyEnum.VAL1.equals(jsonObject.query("/myEnum")));
267264
}
268265

269266
/**

‎src/test/java/org/json/junit/JSONArrayTest.java‎

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.json.junit;
22

3-
import static org.junit.Assert.assertNull;
4-
import static org.junit.Assert.assertTrue;
3+
import static org.junit.Assert.*;
54

65
import java.math.BigDecimal;
76
import java.math.BigInteger;
@@ -10,7 +9,6 @@
109
import java.util.Collections;
1110
import java.util.HashMap;
1211
import java.util.Iterator;
13-
import java.util.List;
1412
import java.util.Map;
1513

1614
import org.json.JSONArray;
@@ -19,15 +17,15 @@
1917
import org.json.JSONPointerException;
2018
import org.junit.Test;
2119

22-
import com.jayway.jsonpath.Configuration;
23-
import com.jayway.jsonpath.JsonPath;
20+
//import com.jayway.jsonpath.Configuration;
21+
//import com.jayway.jsonpath.JsonPath;
2422

2523

2624
/**
2725
* Tests for JSON-Java JSONArray.java
2826
*/
2927
public class JSONArrayTest {
30-
String arrayStr =
28+
static final String arrayStr =
3129
"["+
3230
"true,"+
3331
"false,"+
@@ -322,11 +320,8 @@ public void join() {
322320
String joinStr = jsonArray.join(",");
323321

324322
// validate JSON
325-
/**
326-
* Don't need to remake the JSONArray to perform the parsing
327-
*/
328-
Object doc = Configuration.defaultConfiguration().jsonProvider().parse("["+joinStr+"]");
329-
assertTrue("expected 13 items in top level object", ((List<?>)(JsonPath.read(doc, "$"))).size() == 13);
323+
jsonArray = new JSONArray("["+joinStr+"]");
324+
assertEquals("expected 13 items in top level object", 13, jsonArray.toList().size());
330325
assertTrue("expected true", Boolean.TRUE.equals(jsonArray.query("/0")));
331326
assertTrue("expected false", Boolean.FALSE.equals(jsonArray.query("/1")));
332327
assertTrue("expected \"true\"", "true".equals(jsonArray.query("/2")));
@@ -336,9 +331,11 @@ public void join() {
336331
assertTrue("expected \"23.45\"", "23.45".equals(jsonArray.query("/6")));
337332
assertTrue("expected 42", Integer.valueOf(42).equals(jsonArray.query("/7")));
338333
assertTrue("expected \"43\"", "43".equals(jsonArray.query("/8")));
339-
assertTrue("expected 1 item in [9]", ((List<?>)(JsonPath.read(doc, "$[9]"))).size() == 1);
334+
// assertTrue("expected 1 item in [9]", ((List<?>)(JsonPath.read(doc, "$[9]"))).size() == 1);
335+
assertEquals("expected 1 item in [9]", 1, ((JSONArray)(jsonArray.query("/9"))).toList().size());
340336
assertTrue("expected world", "world".equals(jsonArray.query("/9/0")));
341-
assertTrue("expected 4 items in [10]", ((Map<?,?>)(JsonPath.read(doc, "$[10]"))).size() == 4);
337+
// assertTrue("expected 4 items in [10]", ((Map<?,?>)(JsonPath.read(doc, "$[10]"))).size() == 4);
338+
assertEquals("expected 4 items in [10]", 4, ((JSONObject)(jsonArray.query("/10"))).toMap().size());
342339
assertTrue("expected value1", "value1".equals(jsonArray.query("/10/key1")));
343340
assertTrue("expected value2", "value2".equals(jsonArray.query("/10/key2")));
344341
assertTrue("expected value3", "value3".equals(jsonArray.query("/10/key3")));
@@ -358,6 +355,8 @@ public void length() {
358355
assertTrue("expected JSONArray length 13", jsonArray.length() == 13);
359356
JSONArray nestedJsonArray = jsonArray.getJSONArray(9);
360357
assertTrue("expected JSONArray length 1", nestedJsonArray.length() == 1);
358+
359+
System.out.println(jsonArray.toString(2));
361360
}
362361

363362
/**
@@ -484,24 +483,29 @@ public void put() {
484483
jsonArray.put(collection);
485484

486485
// validate JSON
487-
Object doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonArray.toString());
488-
assertTrue("expected 10 top level items", ((List<?>)(JsonPath.read(doc, "$"))).size() == 10);
486+
// Object doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonArray.toString());
487+
// assertTrue("expected 10 top level items", ((List<?>)(JsonPath.read(doc, "$"))).size() == 10);
488+
assertEquals("expected 10 top level items", 10, jsonArray.toList().size());
489489
assertTrue("expected true", Boolean.TRUE.equals(jsonArray.query("/0")));
490490
assertTrue("expected false", Boolean.FALSE.equals(jsonArray.query("/1")));
491-
assertTrue("expected 2 items in [2]", ((List<?>)(JsonPath.read(doc, "$[2]"))).size() == 2);
491+
// assertTrue("expected 2 items in [2]", ((List<?>)(JsonPath.read(doc, "$[2]"))).size() == 2);
492+
assertEquals("expected 2 items in [2]", 2, ((JSONArray)(jsonArray.query("/2"))).toList().size());
492493
assertTrue("expected hello", "hello".equals(jsonArray.query("/2/0")));
493494
assertTrue("expected world", "world".equals(jsonArray.query("/2/1")));
494495
assertTrue("expected 2.5", Double.valueOf(2.5).equals(jsonArray.query("/3")));
495496
assertTrue("expected 1", Integer.valueOf(1).equals(jsonArray.query("/4")));
496497
assertTrue("expected 45", Long.valueOf(45).equals(jsonArray.query("/5")));
497498
assertTrue("expected objectPut", "objectPut".equals(jsonArray.query("/6")));
498-
assertTrue("expected 3 items in [7]", ((Map<?,?>)(JsonPath.read(doc, "$[7]"))).size() == 3);
499+
// assertTrue("expected 3 items in [7]", ((Map<?,?>)(JsonPath.read(doc, "$[7]"))).size() == 3);
500+
assertEquals("expected 3 items in [7]", 3, ((JSONObject)(jsonArray.query("/7"))).toMap().size());
499501
assertTrue("expected val10", "val10".equals(jsonArray.query("/7/key10")));
500502
assertTrue("expected val20", "val20".equals(jsonArray.query("/7/key20")));
501503
assertTrue("expected val30", "val30".equals(jsonArray.query("/7/key30")));
502-
assertTrue("expected 1 item in [8]", ((Map<?,?>)(JsonPath.read(doc, "$[8]"))).size() == 1);
504+
// assertTrue("expected 1 item in [8]", ((Map<?,?>)(JsonPath.read(doc, "$[8]"))).size() == 1);
505+
assertEquals("expected 1 item in [8]", 1, ((JSONObject)(jsonArray.query("/8"))).toMap().size());
503506
assertTrue("expected v1", "v1".equals(jsonArray.query("/8/k1")));
504-
assertTrue("expected 2 items in [9]", ((List<?>)(JsonPath.read(doc, "$[9]"))).size() == 2);
507+
// assertTrue("expected 2 items in [9]", ((List<?>)(JsonPath.read(doc, "$[9]"))).size() == 2);
508+
assertEquals("expected 2 items in [9]", 2, ((JSONArray)(jsonArray.query("/9"))).toList().size());
505509
assertTrue("expected 1", Integer.valueOf(1).equals(jsonArray.query("/9/0")));
506510
assertTrue("expected 2", Integer.valueOf(2).equals(jsonArray.query("/9/1")));
507511
}
@@ -561,26 +565,30 @@ public void putIndex() {
561565
} catch(Exception ignored) {}
562566

563567
// validate JSON
564-
Object doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonArray.toString());
565-
assertTrue("expected 11 top level items", ((List<?>)(JsonPath.read(doc, "$"))).size() == 11);
568+
// Object doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonArray.toString());
569+
assertEquals("expected 11 top level items", 11, jsonArray.toList().size());
566570
assertTrue("expected true", Boolean.TRUE.equals(jsonArray.query("/0")));
567571
assertTrue("expected false", Boolean.FALSE.equals(jsonArray.query("/1")));
568-
assertTrue("expected 2 items in [2]", ((List<?>)(JsonPath.read(doc, "$[2]"))).size() == 2);
572+
// assertTrue("expected 2 items in [2]", ((List<?>)(JsonPath.read(doc, "$[2]"))).size() == 2);
573+
assertEquals("expected 2 items in [2]", 2, ((JSONArray)(jsonArray.query("/2"))).toList().size());
569574
assertTrue("expected hello", "hello".equals(jsonArray.query("/2/0")));
570575
assertTrue("expected world", "world".equals(jsonArray.query("/2/1")));
571576
assertTrue("expected 2.5", Double.valueOf(2.5).equals(jsonArray.query("/3")));
572577
assertTrue("expected 1", Integer.valueOf(1).equals(jsonArray.query("/4")));
573578
assertTrue("expected 45", Long.valueOf(45).equals(jsonArray.query("/5")));
574579
assertTrue("expected objectPut", "objectPut".equals(jsonArray.query("/6")));
575580
assertTrue("expected null", JSONObject.NULL.equals(jsonArray.query("/7")));
576-
assertTrue("expected 3 items in [8]", ((Map<?,?>)(JsonPath.read(doc, "$[8]"))).size() == 3);
581+
// assertTrue("expected 3 items in [8]", ((Map<?,?>)(JsonPath.read(doc, "$[8]"))).size() == 3);
582+
assertEquals("expected 3 items in [8]", 3, ((JSONObject)(jsonArray.query("/8"))).toMap().size());
577583
assertTrue("expected val10", "val10".equals(jsonArray.query("/8/key10")));
578584
assertTrue("expected val20", "val20".equals(jsonArray.query("/8/key20")));
579585
assertTrue("expected val30", "val30".equals(jsonArray.query("/8/key30")));
580-
assertTrue("expected 2 items in [9]", ((List<?>)(JsonPath.read(doc, "$[9]"))).size() == 2);
586+
// assertTrue("expected 2 items in [9]", ((List<?>)(JsonPath.read(doc, "$[9]"))).size() == 2);
587+
assertEquals("expected 2 items in [9]", 2, ((JSONArray)(jsonArray.query("/9"))).toList().size());
581588
assertTrue("expected 1", Integer.valueOf(1).equals(jsonArray.query("/9/0")));
582589
assertTrue("expected 2", Integer.valueOf(2).equals(jsonArray.query("/9/1")));
583-
assertTrue("expected 1 item in [10]", ((Map<?,?>)(JsonPath.read(doc, "$[10]"))).size() == 1);
590+
// assertTrue("expected 1 item in [10]", ((Map<?,?>)(JsonPath.read(doc, "$[10]"))).size() == 1);
591+
assertEquals("expected 1 item in [10]", 1, ((JSONObject)(jsonArray.query("/10"))).toMap().size());
584592
assertTrue("expected v1", "v1".equals(jsonArray.query("/10/k1")));
585593
}
586594

@@ -660,8 +668,9 @@ public void objectArrayVsIsArray() {
660668
JSONArray jsonArray = new JSONArray(myObject);
661669

662670
// validate JSON
663-
Object doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonArray.toString());
664-
assertTrue("expected 7 top level items", ((List<?>)(JsonPath.read(doc, "$"))).size() == 7);
671+
// Object doc = Configuration.defaultConfiguration().jsonProvider().parse(jsonArray.toString());
672+
// assertTrue("expected 7 top level items", ((List<?>)(JsonPath.read(doc, "$"))).size() == 7);
673+
assertTrue("expected 7 top level items", jsonArray.toList().size() == 7);
665674
assertTrue("expected 1", Integer.valueOf(1).equals(jsonArray.query("/0")));
666675
assertTrue("expected 2", Integer.valueOf(2).equals(jsonArray.query("/1")));
667676
assertTrue("expected 3", Integer.valueOf(3).equals(jsonArray.query("/2")));

0 commit comments

Comments
 (0)