/* * This code provided as an example and is not to be considered complete or production ready. */ package contracts; import static org.junit.Assert.*; import java.util.Collection; import java.util.NoSuchElementException; import org.junit.After; import org.junit.Before; import org.xenei.junit.contract.Contract; import org.xenei.junit.contract.ContractTest; import org.xenei.junit.contract.IProducer; @Contract(Iterable.class) public class IterableTest { private IProducer<Iterable<Object>> producer; private Iterable<Object> it; @Contract.Inject public void setIterable(IProducer<Iterable<Object>> producer) { this.producer = producer; } @Before public void populate() { it = producer.newInstance(); } @After public void cleanup() { producer.cleanUp(); } @ContractTest public void hasNext() throws Exception { assertFalse(it.iterator().hasNext()); } @ContractTest public void doubleIterator() throws Exception { it.iterator(); it.iterator(); } @ContractTest public void nextFails() throws Exception { try { it.iterator().next(); fail("Didn't throw NoSuchElementException"); } catch (NoSuchElementException ex) { // expected } } }