Skip to content

Commit 8ac8c34

Browse files
committed
tests for enum-support
1 parent ec7eb25 commit 8ac8c34

1 file changed

Lines changed: 44 additions & 3 deletions

File tree

EnumTest.java

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -222,13 +222,13 @@ public void wrap() {
222222

223223
@Test
224224
public void enumAPI() {
225-
/**
226-
* Exercise the proposed enum API methods
227-
*/
228225
MyEnumClass myEnumClass = new MyEnumClass();
229226
myEnumClass.setMyEnum(MyEnum.VAL1);
230227
MyEnumField myEnumField = MyEnumField.VAL2;
231228

229+
/**
230+
* Exercise the proposed enum API methods on JSONObject
231+
*/
232232
JSONObject jsonObject = new JSONObject();
233233
jsonObject.put("strKey", "value");
234234
jsonObject.put("enumKey", myEnumField);
@@ -268,5 +268,46 @@ public void enumAPI() {
268268
actualEnum = jsonObject.optEnum(MyEnumField.class, "strKey", null);
269269
assertTrue("opt null", actualEnum == null);
270270

271+
/**
272+
* Exercise the proposed enum API methods on JSONArray
273+
*/
274+
JSONArray jsonArray = new JSONArray();
275+
jsonArray.put("value");
276+
jsonArray.put(myEnumField);
277+
jsonArray.put(myEnumClass);
278+
279+
// get a plain old enum
280+
actualEnum = jsonArray.getEnum(MyEnumField.class, 1);
281+
assertTrue("get myEnumField", actualEnum == MyEnumField.VAL2);
282+
283+
// try to get the wrong value
284+
try {
285+
actualEnum = jsonArray.getEnum(MyEnumField.class, 0);
286+
assertTrue("should throw an exception for wrong index", false);
287+
} catch (Exception ignored) {}
288+
289+
// get a class that contains an enum
290+
actualEnumClass = (MyEnumClass)jsonArray.get(2);
291+
assertTrue("get enum", actualEnumClass.getMyEnum() == MyEnum.VAL1);
292+
293+
// opt a plain old enum
294+
actualEnum = jsonArray.optEnum(MyEnumField.class, 1);
295+
assertTrue("opt myEnumField", actualEnum == MyEnumField.VAL2);
296+
297+
// opt the wrong value
298+
actualEnum = jsonArray.optEnum(MyEnumField.class, 0);
299+
assertTrue("opt null", actualEnum == null);
300+
301+
// opt a class that contains an enum
302+
actualEnumClass = (MyEnumClass)jsonArray.opt(2);
303+
assertTrue("get enum", actualEnumClass.getMyEnum() == MyEnum.VAL1);
304+
305+
// opt with default a plain old enum
306+
actualEnum = jsonArray.optEnum(MyEnumField.class, 1, null);
307+
assertTrue("opt myEnumField", actualEnum == MyEnumField.VAL2);
308+
309+
// opt with default the wrong value
310+
actualEnum = jsonArray.optEnum(MyEnumField.class, 0, null);
311+
assertTrue("opt null", actualEnum == null);
271312
}
272313
}

0 commit comments

Comments
 (0)