/** * Changes the strategy on the current set. * @param strategy id strategy * @return the current set. */ public JsonSet withIdStrategy(IdStrategy strategy) { this.strategy = strategy; if(size()>0) { JsonSet seen=new JsonSet().withIdStrategy(strategy); Iterator<JsonElement> iterator = this.iterator(); while (iterator.hasNext()) { JsonElement e = iterator.next(); if(seen.contains(e)) { iterator.remove(); } else { seen.add(e); } } } return this; }
@Override public BinaryOperator<JsonSet> combiner() { return (l,r) -> {l.addAll(r); return l;}; }
public JsonArrayAssert array() { return new JsonArrayAssert(actual.asArray()); } }
public void shouldReplaceElementAfterSettingStrategy() { JsonObject object1 = object(field("id",1), field("value", "foo")); JsonObject object2 = object(field("id",1), field("value", "bar")); JsonSet set = set(); set = set.withIdStrategy("id"); set.add(object1); set.add(object2); assertThat(set.size(), is(1)); assertThat(set.get(0).asObject().getString("value"), is("bar")); }
public void shouldUseIdStrategyWithVarArgs() { JsonSet set = set(); set = set.withIdStrategy("id", "type"); set.add( object(field("id",1), field("type", "a"), field("value", "foo")), object(field("id",1), field("type", "a"), field("value", "bar")), object(field("id",1), field("type", "b"), field("value", "oldbarbar")), object(field("id",1), field("value", "bars"), field("type", "b")) ); assertThat(set.size(), is(2)); assertThat(set.toString()).contains("bars").doesNotContain("oldbarbar"); // should replace }
public void shouldRemoveDuplicatesAfterSettingStrategy() { JsonObject object1 = object(field("id",1), field("value", "foo")); JsonObject object2 = object(field("id",1), field("value", "bar")); JsonSet set = set(); set.add(object1, object2); set = set.withIdStrategy("id"); assertThat(set.size(), is(1)); }
public void shouldRemoveByIdWhenUsingIdStrategy() { JsonSet set = set( object(field("id","1"),field("name","foo")), object(field("id","2"),field("name","bar")) ).withIdStrategy("id"); assertThat(set.size()).isEqualTo(2); set.remove(object(field("id","2"))); assertThat(set.size()).isEqualTo(1); }
public void setWithIdStrategyShouldContain() { JsonSet set = set(); set.withIdStrategy("id"); set.add(object(field("id","1"),field("name","foo"))); assertThat(set.contains(object(field("id","1"),field("name","bar")))).isTrue(); }
public void shouldRemoveWithIdStrategy() { JsonSet set = set(); set.withIdStrategy("id"); JsonObject obj = object(field("id","1"),field("name","foo")); set.add(obj); set.remove(obj.clone()); assertThat(set).hasSize(0); }
public void shouldAddElementsToArray() { assertThat(set(Arrays.asList(1,2,3)).size(), is(3)); assertThat(set(new Integer[]{1,2,3}).size(), is(3)); assertThat(set(new int[]{1,2,3}).size(), is(3)); assertThat(set(new long[]{1,2,3}).size(), is(3)); assertThat(set(new float[]{1,2,3}).size(), is(3)); assertThat(set(new double[]{1,2,3}).size(), is(3)); }