package org.archive.util.iterator; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.TreeSet; import junit.framework.TestCase; public class FilterStringIteratorTest extends TestCase { public void t2estHasNext() { String blocks[] = {"a","ab","ba","cc"}; List<String> bl = Arrays.asList(blocks); TransformingPrefixStringFilter f = new TransformingPrefixStringFilter(bl); assertBlocked(true,"a",f); assertBlocked(true,"ab",f); assertBlocked(true,"ac",f); assertBlocked(true,"acca",f); assertBlocked(false,"b",f); assertBlocked(true,"ba",f); assertBlocked(true,"bac",f); assertBlocked(false,"bc",f); assertBlocked(false,"ca",f); assertBlocked(true,"cc",f); assertBlocked(true,"cca",f); } public void testTreeSet() { String blocks[] = {"a","ab","ba","cc"}; TreeSet<String> s = TransformingPrefixStringFilter.makeTreeSet(Arrays.asList(blocks),null); assertTrue(s.contains("a")); assertFalse(s.contains("ab")); String blocks2[] = {"ab","a","ba","cc"}; TreeSet<String> s2 = TransformingPrefixStringFilter.makeTreeSet(Arrays.asList(blocks2),null); assertTrue(s2.contains("a")); assertFalse(s2.contains("ab")); } private void assertBlocked(boolean blocked, String s, StringFilter f) { ArrayList<String> l = new ArrayList<String>(); l.add(s); FilterStringIterator i = new FilterStringIterator(l.iterator(), f); if(blocked) { assertFalse(i.hasNext()); } else { assertTrue(i.hasNext()); assertEquals(s,i.next()); } } }