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();
}
}