package net.glowstone.util.collection;
import com.google.common.collect.ImmutableList;
import org.junit.Assert;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Tests for {@link SuperIterator}.
*/
public class SuperIteratorTest {
private void populateList(List<String> list, String prefix) {
for (int i = 0; i < 10; i++) {
list.add(prefix + i);
}
}
private void checkIterator(Iterator<String> iterator, String prefix) {
for (int i = 0; i < 10; i++) {
Assert.assertTrue("Iterator hasNext prematurely returned false", iterator.hasNext());
Assert.assertEquals("Iterator returned an invalid object", prefix + i, iterator.next());
}
}
@Test
public void test() {
List<String> listA = new ArrayList<>();
populateList(listA, "A");
List<String> listB = new ArrayList<>();
populateList(listB, "B");
List<List<String>> lists = ImmutableList.of(listA, listB);
Iterator<String> iterator = new SuperIterator(lists);
checkIterator(iterator, "A");
checkIterator(iterator, "B");
Assert.assertFalse("Expected hasNext = false", iterator.hasNext());
}
}