
net.amygdalum.extensions.assertj.iterables.IteratingAssert Maven / Gradle / Ivy
package net.amygdalum.extensions.assertj.iterables;
import java.util.Iterator;
import java.util.NoSuchElementException;
import org.assertj.core.api.FactoryBasedNavigableIterableAssert;
public class IteratingAssert extends FactoryBasedNavigableIterableAssert, Iterable extends ELEMENT>, ELEMENT, IteratedObjectAssert> {
private Iterator extends ELEMENT> iterator;
public IteratingAssert(Iterable extends ELEMENT> actual) {
super(actual, IteratingAssert.class, new IteratedObjectAssertFactory());
this.iterator = this.actual.iterator();
}
@Override
public IteratedObjectAssert toAssert(ELEMENT value, String description) {
IteratedObjectAssert itemAssert = super.toAssert(value, description);
itemAssert.setParent(this);
return itemAssert;
}
public IteratedObjectAssert next() {
if (!iterator.hasNext()) {
throw new NoSuchElementException("trying to match next element but no element left");
}
IteratedObjectAssert iterated = toAssert(iterator.next(), navigationDescription("check next element"));
return iterated;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy