Ich habe eine Sammlung von Matcher wie List<Matcher<?>> filters
und einige Sammlung von Elementen List<Element> elementsToCheck
. Ich möchte eine Behauptung schaffen, wenn es überprüft sind x Elemente, die alle Filter, so etwas wie das Spiel:Assert Anzahl der passenden Elemente in der Sammlung über Hamcrest
public void checkMatch(List<Matcher<?>> filters, int expectedSize){
MatcherAssert.assertThat(elementsToCheck, ???);
}
ich so etwas geschrieben:
final Iterator<Element> iterator = this.elements.iterator();
final List<Element> filtered = new ArrayList<>();
while (iterator.hasNext()) {
final Element element = iterator.next();
boolean allMatches = true;
for (final Matcher<?> matcher : this.filters) {
if (!matcher.matches(element)) {
allMatches = false;
break;
}
}
if (allMatches) {
filtered.add(element);
}
}
MatcherAssert.assertThat(filtered,
Matchers.hasSize(this.expectedSize));
Gibt es eine bessere Lösung?