
ext.test4j.hamcrest.collection.IsArrayContainingInOrder Maven / Gradle / Ivy
package ext.test4j.hamcrest.collection;
import ext.test4j.hamcrest.Description;
import ext.test4j.hamcrest.Factory;
import ext.test4j.hamcrest.Matcher;
import ext.test4j.hamcrest.TypeSafeMatcher;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static java.util.Arrays.asList;
import static ext.test4j.hamcrest.core.IsEqual.equalTo;
public class IsArrayContainingInOrder extends TypeSafeMatcher {
private final Collection> matchers;
private final IsIterableContainingInOrder iterableMatcher;
public IsArrayContainingInOrder(List> matchers) {
this.iterableMatcher = new IsIterableContainingInOrder(matchers);
this.matchers = matchers;
}
@Override
public boolean matchesSafely(E[] item) {
return iterableMatcher.matches(asList(item));
}
@Override
public void describeMismatchSafely(E[] item, Description mismatchDescription) {
iterableMatcher.describeMismatch(asList(item), mismatchDescription);
}
public void describeTo(Description description) {
description.appendList("[", ", ", "]", matchers);
}
@Factory
public static Matcher arrayContaining(E... items) {
List> matchers = new ArrayList>();
for (E item : items) {
matchers.add(equalTo(item));
}
return arrayContaining(matchers);
}
@Factory
public static Matcher arrayContaining(Matcher super E>... matchers) {
return arrayContaining(asList(matchers));
}
@Factory
public static Matcher arrayContaining(List> matchers) {
return new IsArrayContainingInOrder(matchers);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy