All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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, ELEMENT, IteratedObjectAssert> {

	private Iterator iterator;

	public IteratingAssert(Iterable 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