package com.beloo.widget.chipslayoutmanager.layouter; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static org.junit.Assert.*; @RunWith(JUnit4.class) public class IncrementalPositionIteratorTest extends AbstractPositionIteratorTest { @Override AbstractPositionIterator providePositionIterator(int maxPosition) { return new IncrementalPositionIterator(maxPosition); } @Test public void nextShouldReturnCurrentAndThanIncreasedValue() { AbstractPositionIterator iterator = providePositionIterator(5); int result = iterator.next(); assertTrue(result == 0); result = iterator.next(); assertTrue(result == 1); result = iterator.next(); assertTrue(result == 2); } @Test public void hasNextShouldReturnTrueIfMaxCountNotReached() { AbstractPositionIterator iteratorEmpty = providePositionIterator(0); AbstractPositionIterator iterator = providePositionIterator(2); assertTrue(iterator.hasNext()); assertFalse(iteratorEmpty.hasNext()); iterator.next(); assertTrue(iterator.hasNext()); iterator.next(); assertFalse(iterator.hasNext()); } @Test(expected = IllegalStateException.class) public void nextWhenMaxCountReachedShouldThrowException() { AbstractPositionIterator iterator = providePositionIterator(2); int result = iterator.next(); assertTrue(result == 0); result = iterator.next(); assertTrue(result == 1); iterator.next(); } }