@Test public void testCreateFromList() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); }
@Test public void testCreateFromListCharSequence() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); list.add(new StringBuilder("eek")); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertEquals("eek", arr.getString(2)); assertSame(list, arr.getList()); }
@Test public void testCreateFromListNestedJsonObject() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); JsonObject obj = new JsonObject().put("blah", "wibble"); list.add(obj); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); assertSame(obj, arr.getJsonObject(2)); }
@Test public void testCreateFromListNestedMap() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); Map<String, Object> map = new HashMap<>(); map.put("blah", "wibble"); list.add(map); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); JsonObject obj = arr.getJsonObject(2); assertSame(map, obj.getMap()); }
@Test public void testCreateFromListNestedList() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); List<Object> list2 = new ArrayList<>(); list2.add("blah"); list2.add("wibble"); list.add(list2); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); JsonArray arr2 = arr.getJsonArray(2); assertSame(list2, arr2.getList()); }
@Test public void testGetInteger() { jsonArray.add(123); assertEquals(Integer.valueOf(123), jsonArray.getInteger(0)); try { jsonArray.getInteger(-1); fail(); } catch (IndexOutOfBoundsException e) { jsonArray.getInteger(1); fail(); } catch (IndexOutOfBoundsException e) { assertEquals(Integer.valueOf(123), jsonArray.getInteger(1)); jsonArray.add(123f); assertEquals(Integer.valueOf(123), jsonArray.getInteger(2)); jsonArray.add(123d); assertEquals(Integer.valueOf(123), jsonArray.getInteger(3)); jsonArray.add("foo"); try { jsonArray.getInteger(4); fail(); } catch (ClassCastException e) { assertNull(jsonArray.getInteger(5));
@Test public void testCreateFromListNestedJsonArray() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); JsonArray arr2 = new JsonArray().add("blah").add("wibble"); list.add(arr2); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); assertSame(arr2, arr.getJsonArray(2)); }
@Test public void testToJsonArray() { List<Object> list = new ArrayList<>(); list.add("the_string"); list.add(4); list.add(true); list.add(new AsciiString("the_charsequence")); list.add(new BigInteger("1234567")); list.add(Buffer.buffer("hello")); list.add(Collections.singletonMap("nested", 4)); list.add(Arrays.asList(1, 2, 3)); JsonArray json = (JsonArray) ConversionHelper.toObject(list); assertEquals(8, json.size()); assertEquals("the_string", json.getString(0)); assertEquals(4, (int)json.getInteger(1)); assertEquals(true, json.getBoolean(2)); assertEquals("the_charsequence", json.getString(3)); assertEquals(1234567, (int)json.getInteger(4)); assertEquals("hello", new String(json.getBinary(5))); assertEquals(new JsonObject().put("nested", 4), json.getJsonObject(6)); assertEquals(new JsonArray().add(1).add(2).add(3), json.getJsonArray(7)); }
@Test public void testAddInteger() { assertSame(jsonArray, jsonArray.add(123)); assertEquals(Integer.valueOf(123), jsonArray.getInteger(0)); try { jsonArray.add((Integer)null); fail(); } catch (NullPointerException e) { // OK } }
@Test public void testAddAllJsonArray() { jsonArray.add("bar"); JsonArray arr = new JsonArray().add("foo").add(48); assertSame(jsonArray, jsonArray.addAll(arr)); assertEquals(arr.getString(0), jsonArray.getString(1)); assertEquals(arr.getInteger(1), jsonArray.getInteger(2)); try { jsonArray.add((JsonArray)null); fail(); } catch (NullPointerException e) { // OK } }
@Test public void testDecode() { byte[] bytes = TestUtils.randomByteArray(10); String strBytes = Base64.getEncoder().encodeToString(bytes); Instant now = Instant.now(); String strInstant = ISO_INSTANT.format(now); String json = "[\"foo\",123,1234,1.23,2.34,true,\"" + strBytes + "\",\"" + strInstant + "\",null,{\"foo\":\"bar\"},[\"foo\",123]]"; JsonArray arr = new JsonArray(json); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertEquals(Long.valueOf(1234l), arr.getLong(2)); assertEquals(Float.valueOf(1.23f), arr.getFloat(3)); assertEquals(Double.valueOf(2.34d), arr.getDouble(4)); assertEquals(true, arr.getBoolean(5)); assertArrayEquals(bytes, arr.getBinary(6)); assertEquals(Base64.getEncoder().encodeToString(bytes), arr.getValue(6)); assertEquals(now, arr.getInstant(7)); assertEquals(now.toString(), arr.getValue(7)); assertTrue(arr.hasNull(8)); JsonObject obj = arr.getJsonObject(9); assertEquals("bar", obj.getString("foo")); JsonArray arr2 = arr.getJsonArray(10); assertEquals("foo", arr2.getString(0)); assertEquals(Integer.valueOf(123), arr2.getInteger(1)); }
@Test public void testDecode() throws Exception { byte[] bytes = TestUtils.randomByteArray(10); String strBytes = Base64.getEncoder().encodeToString(bytes); Instant now = Instant.now(); String strInstant = ISO_INSTANT.format(now); String json = "{\"mystr\":\"foo\",\"myint\":123,\"mylong\":1234,\"myfloat\":1.23,\"mydouble\":2.34,\"" + "myboolean\":true,\"mybinary\":\"" + strBytes + "\",\"myinstant\":\"" + strInstant + "\",\"mynull\":null,\"myobj\":{\"foo\":\"bar\"},\"myarr\":[\"foo\",123]}"; JsonObject obj = new JsonObject(json); assertEquals(json, obj.encode()); assertEquals("foo", obj.getString("mystr")); assertEquals(Integer.valueOf(123), obj.getInteger("myint")); assertEquals(Long.valueOf(1234), obj.getLong("mylong")); assertEquals(Float.valueOf(1.23f), obj.getFloat("myfloat")); assertEquals(Double.valueOf(2.34d), obj.getDouble("mydouble")); assertTrue(obj.getBoolean("myboolean")); assertArrayEquals(bytes, obj.getBinary("mybinary")); assertEquals(Base64.getEncoder().encodeToString(bytes), obj.getValue("mybinary")); assertEquals(now, obj.getInstant("myinstant")); assertEquals(now.toString(), obj.getValue("myinstant")); assertTrue(obj.containsKey("mynull")); JsonObject nestedObj = obj.getJsonObject("myobj"); assertEquals("bar", nestedObj.getString("foo")); JsonArray nestedArr = obj.getJsonArray("myarr"); assertEquals("foo", nestedArr.getString(0)); assertEquals(Integer.valueOf(123), Integer.valueOf(nestedArr.getInteger(1))); }
private void ping(Message<JsonArray> message) { JsonArray jsonArray = message.body(); for (int i = 0; i < jsonArray.size(); i++) { int node = jsonArray.getInteger(i); for (int j = 0; j < numAddresses; j++) { vertx.eventBus().send(createAddress(node, j), "ping", ar -> { if (ar.succeeded()) { vertx.eventBus().send("control", "pong"); } else { Throwable cause = ar.cause(); if (cause instanceof ReplyException) { ReplyException replyException = (ReplyException) cause; if (replyException.failureType() == ReplyFailure.NO_HANDLERS) { vertx.eventBus().send("control", "noHandlers"); return; } } log.error("Unexpected error during ping (id=" + id + ")", cause); } }); } } }
jsonArray.add((Object)arr); assertEquals("bar", jsonArray.getString(0)); assertEquals(Integer.valueOf(123), jsonArray.getInteger(1)); assertEquals(Long.valueOf(123l), jsonArray.getLong(2)); assertEquals(Float.valueOf(1.23f), jsonArray.getFloat(3));
@Test public void testCopy() { jsonArray.add("foo"); jsonArray.add(123); JsonObject obj = new JsonObject().put("foo", "bar"); jsonArray.add(obj); jsonArray.add(new StringBuilder("eeek")); JsonArray copy = jsonArray.copy(); assertEquals("eeek", copy.getString(3)); assertNotSame(jsonArray, copy); assertEquals(jsonArray, copy); assertEquals(4, copy.size()); assertEquals("foo", copy.getString(0)); assertEquals(Integer.valueOf(123), copy.getInteger(1)); assertEquals(obj, copy.getJsonObject(2)); assertNotSame(obj, copy.getJsonObject(2)); copy.add("foo"); assertEquals(4, jsonArray.size()); jsonArray.add("bar"); assertEquals(5, copy.size()); }
@Test public void testCreateFromList() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); }
@Test public void testCreateFromListCharSequence() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); list.add(new StringBuilder("eek")); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertEquals("eek", arr.getString(2)); assertSame(list, arr.getList()); }
@Test public void testCreateFromListNestedJsonObject() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); JsonObject obj = new JsonObject().put("blah", "wibble"); list.add(obj); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); assertSame(obj, arr.getJsonObject(2)); }
@Test public void testCreateFromListNestedJsonArray() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); JsonArray arr2 = new JsonArray().add("blah").add("wibble"); list.add(arr2); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); assertSame(arr2, arr.getJsonArray(2)); }
@Test public void testAddInteger() { assertSame(jsonArray, jsonArray.add(123)); assertEquals(Integer.valueOf(123), jsonArray.getInteger(0)); try { jsonArray.add((Integer)null); fail(); } catch (NullPointerException e) { // OK } }