package com.yoursway.tests.commons; import static java.util.Arrays.asList; import java.util.HashSet; import java.util.Set; import org.eclipse.core.databinding.observable.set.SetChangeEvent; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; public class SetChangeEventMatcher extends BaseMatcher<SetChangeEvent> { private Set<Object> additions = new HashSet<Object>(); private Set<Object> removals = new HashSet<Object>(); public SetChangeEventMatcher additions(Object... additions) { this.additions.addAll(asList(additions)); return this; } public SetChangeEventMatcher removals(Object... additions) { this.removals.addAll(asList(additions)); return this; } public boolean matches(Object item) { SetChangeEvent event = (SetChangeEvent) item; return event.diff.getAdditions().equals(additions) && event.diff.getRemovals().equals(removals); } public void describeTo(Description description) { description.appendText("SetChangeEventMatcher") .appendValueList(" +(", ", ", ")", additions) .appendValueList(" -(", ", ", ")", removals) ; } }