
ext.test4j.hamcrest.collection.IsIterableWithSize Maven / Gradle / Ivy
package ext.test4j.hamcrest.collection;
import static ext.test4j.hamcrest.core.IsEqual.equalTo;
import java.util.Iterator;
import ext.test4j.hamcrest.Factory;
import ext.test4j.hamcrest.FeatureMatcher;
import ext.test4j.hamcrest.Matcher;
public class IsIterableWithSize extends FeatureMatcher, Integer> {
public IsIterableWithSize(Matcher super Integer> sizeMatcher) {
super(sizeMatcher, "an iterable with size", "iterable size");
}
@Override
protected Integer featureValueOf(Iterable actual) {
int size = 0;
for (Iterator iterator = actual.iterator(); iterator.hasNext(); iterator.next()) {
size++;
}
return size;
}
@Factory
public static Matcher> iterableWithSize(Matcher super Integer> sizeMatcher) {
return new IsIterableWithSize(sizeMatcher);
}
@Factory
public static Matcher> iterableWithSize(int size) {
return iterableWithSize(equalTo(size));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy