@Override public boolean serialize(final JsonContext jsonContext, final JsonArray jsonArray) { final int length = jsonArray.size(); if (length == 0 && jsonContext.isExcludeEmpty()) { return true; } jsonContext.writeOpenArray(); int count = 0; for (int i = 0; i < length; i++) { if (count > 0) { jsonContext.writeComma(); } if (jsonContext.serialize(jsonArray.getValue(i))) { count++; } } jsonContext.writeCloseArray(); return true; } }
@Test void testSize() { jsonArray.add("wibble"); jsonArray.add(true); jsonArray.add(123); assertEquals(3, jsonArray.size()); }
@Test void testRemoveByPos() { jsonArray.add("wibble"); jsonArray.add(true); jsonArray.add(123); assertEquals(3, jsonArray.size()); assertEquals("wibble", jsonArray.remove(0)); assertEquals(2, jsonArray.size()); assertEquals(123, jsonArray.remove(1)); assertEquals(1, jsonArray.size()); assertEquals(true, jsonArray.remove(0)); assertTrue(jsonArray.isEmpty()); }
@Test void testIterator() { jsonArray.add("foo"); jsonArray.add(123); JsonObject obj = new JsonObject().put("foo", "bar"); jsonArray.add(obj); Iterator<Object> iter = jsonArray.iterator(); assertTrue(iter.hasNext()); Object entry = iter.next(); assertEquals("foo", entry); assertTrue(iter.hasNext()); entry = iter.next(); assertEquals(123, entry); assertTrue(iter.hasNext()); entry = iter.next(); assertEquals(obj, entry); assertFalse(iter.hasNext()); iter.remove(); assertFalse(jsonArray.contains(obj)); assertEquals(2, jsonArray.size()); }
@Test void testRemoveByObject() { jsonArray.add("wibble"); jsonArray.add(true); jsonArray.add(123); assertEquals(3, jsonArray.size()); assertTrue(jsonArray.remove("wibble")); assertEquals(2, jsonArray.size()); assertFalse(jsonArray.remove("notthere")); assertTrue(jsonArray.remove(true)); assertTrue(jsonArray.remove(Integer.valueOf(123))); assertTrue(jsonArray.isEmpty()); }