package iterators;
import org.junit.*;
import static org.junit.Assert.*;
import org.styloot.hobo.*;
import org.styloot.hobo.iterators.*;
import java.util.*;
public class TestFeaturesFilterIterator {
Vector<Item> items = new Vector<Item>();
@Before public void setUp() {
for (int i=0;i<10;i++) {
Vector<String> features = new Vector<String>();
features.add("foo");
if (i % 2 == 0) {
features.add("bar");
}
items.add( new Item("id" + i, "/baz", features, i, null, 5) );
}
}
@Test public void testIterator() {
Vector<String> features = new Vector<String>();
features.add("foo");
features.add("bar");
Iterator<Item> iter = new FeaturesFilterIterator(items.iterator(), features);
int itemsFound = 0;
while (iter.hasNext()) {
Item item = iter.next();
assertNotNull(item);
assertEquals("item " + item.id, "id" + 2*itemsFound, item.id);
itemsFound += 1;
}
assertEquals(5, itemsFound);
}
@Test public void testIterator2() {
Vector<String> features = new Vector<String>();
features.add("foo");
Iterator<Item> iter = new FeaturesFilterIterator(items.iterator(), features);
int itemsFound = 0;
while (iter.hasNext()) {
Item item = iter.next();
assertNotNull(item);
assertEquals("item " + item.id, "id" + itemsFound, item.id);
itemsFound += 1;
}
assertEquals(10, itemsFound);
}
@Test public void testIterator3() {
Vector<String> features = new Vector<String>();
features.add("foo");
features.add("buz");
Iterator<Item> iter = new FeaturesFilterIterator(items.iterator(), features);
int itemsFound = 0;
while (iter.hasNext()) {
assertTrue(false);
}
assertEquals(0, itemsFound);
}
}