default @Nonnull JsonArray getOrCreateArray(@Nonnull String... labels) { return getJsonObject().getOrCreateArray(labels); }
@Test(dataProvider="objectConstructors") public void shouldCreateArray(Supplier<JsonObject> supplier) { JsonObject object = supplier.get(); JsonArray createdArray = object.getOrCreateArray("a","b","c"); createdArray.add("1"); Assert.assertTrue(object.getArray("a","b","c").contains("1"), "array should have been added to the object"); }
public void shouldConvertFieldToSet() { JsonObject object = object(field("f", array(1,1,1,1,1))); assertThat(object.getOrCreateArray("f").size(), is(5)); assertThat(object.getOrCreateSet("f").size(), is(1)); assertThat(object.getArray("f").size(), is(1)); object.getArray("f").add(1); assertThat(object.getArray("f").size(), is(1)); }
@Test(expectedExceptions=JsonTypeMismatchException.class) public void shouldThrowExceptionOnElementThatIsNotAnArray() { JsonObject object = object().put("a", object().put("b", 42).get()).get(); object.getOrCreateArray("a","b"); }
public void shouldReturnExistingArray() { JsonObject object = object().put("a", object().put("b", array("foo")).get()).get(); Assert.assertTrue(object.getOrCreateArray("a","b").contains("foo")); }
public void shouldModifyNotReplaceExistingArrayWithIdStrategy() { JsonObject o = object(field("arr", array( object(field("id","1"),field("name","foo")), object(field("id","2"),field("name","bar")) ))); JsonSet set = o.getOrCreateSet("arr").withIdStrategy("id"); set.add(object(field("id","3"),field("name","foobar"))); assertThat(o.getOrCreateArray("arr").size()).isEqualTo(3); }
assertTrue(object.getString("1","2","3","4","5").equals("xxx"), "yep, we just added a string value 5 levels deep that did not exist so far"); object.getOrCreateArray("5","4","3","2","1").add("xxx"); assertTrue(object.getArray("5","4","3","2","1").contains("xxx"), "naturally it works for arrays too");