public void shouldReplaceElement() { JsonArray array = array("bar","foo"); assertThat(array.replace("bar", "rab"), is(true)); assertThat(array.replace("bar", "rab"), is(false)); assertThat(array.contains("rab"), is(true)); assertThat(array.contains("foo"), is(true)); assertThat(array.contains("bar"), is(false)); }
public void shouldRemovePrimitive() { JsonArray array = array("1","2","3"); array.remove("2"); assertThat("should be removed as primitive", !array.contains(primitive("2"))); assertThat("should be removed as primitive", !array.contains("2")); array.remove(primitive("3")); assertThat("should be removed", !array.contains(primitive("3"))); assertThat("should be removed", !array.contains("3")); }
@Override public boolean contains(Object o) { if (strategy == null) { return super.contains(o); } else { if (o instanceof JsonElement) { JsonElement element = (JsonElement) o; for (JsonElement e : this) { if (strategy.equals(e, element)) { return true; } } } if(o instanceof JsonDataObject) { JsonElement element = ((JsonDataObject) o).getJsonObject(); for (JsonElement e : this) { if (strategy.equals(e, element)) { return true; } } } return false; } }
@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 shouldReplaceObject() { JsonArray array = array( object(field("id", 1)), object(field("id", 2)), object(field("id", 3)), object(field("id", 4)) ); assertThat(array.replaceObject(object(field("id", 2)), object(field("id", 22)), "id"), is(true)); assertThat(array.replaceObject(object(field("id", 2)), object(field("id", 22)), "id"), is(false)); assertThat(array.contains(object(field("id", 22))), is(true)); assertThat(array.contains(object(field("id", 2))), is(false)); }
public void shouldReturnExistingArray() { JsonObject object = object().put("a", object().put("b", array("foo")).get()).get(); Assert.assertTrue(object.getOrCreateArray("a","b").contains("foo")); }
"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"); assertTrue(array.get(1) == array.get("bar"), "returns the same object"); assertTrue(array.contains(primitive("foo")), "obviously this works"); assertTrue(array.contains("foo"), "but this works as well");