filebot/test/net/filebot/util/TreeIteratorTest.java

71 lines
1.6 KiB
Java
Raw Normal View History

2014-04-19 02:30:29 -04:00
package net.filebot.util;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
public class TreeIteratorTest {
2015-07-25 18:47:19 -04:00
private List<Object> tree;
2015-07-25 18:47:19 -04:00
@Before
public void setUp() throws Exception {
tree = new ArrayList<Object>();
2015-07-25 18:47:19 -04:00
tree.add("r1");
2015-07-25 18:47:19 -04:00
List<Object> branch = new ArrayList<Object>();
branch.add("b1");
branch.add("b2");
2015-07-25 18:47:19 -04:00
tree.add(branch);
2015-07-25 18:47:19 -04:00
tree.add("r2");
2015-07-25 18:47:19 -04:00
List<Object> treetop = new ArrayList<Object>();
treetop.add("t1");
treetop.add("t2");
treetop.add("t3");
2015-07-25 18:47:19 -04:00
List<Object> trunk = new ArrayList<Object>();
trunk.add(treetop);
2015-07-25 18:47:19 -04:00
tree.add(trunk);
}
2015-07-25 18:47:19 -04:00
@Test
public void iterate() {
TreeIterator<Object> treeIterator = new TreeIterator<Object>(tree) {
2015-07-25 18:47:19 -04:00
@Override
protected Iterator<Object> children(Object node) {
if (node instanceof Iterable)
return ((Iterable) node).iterator();
2015-07-25 18:47:19 -04:00
return null;
}
};
2015-07-25 18:47:19 -04:00
// check leafs (String) and nodes (Iterable)
assertTrue(treeIterator.next() instanceof Iterable); // root
assertEquals("r1", treeIterator.next());
assertTrue(treeIterator.next() instanceof Iterable); // branch
assertEquals("b1", treeIterator.next());
assertEquals("b2", treeIterator.next());
assertEquals("r2", treeIterator.next());
assertTrue(treeIterator.next() instanceof Iterable); // trunk
assertTrue(treeIterator.next() instanceof Iterable); // treetop
assertEquals("t1", treeIterator.next());
assertEquals("t2", treeIterator.next());
assertEquals("t3", treeIterator.next());
2015-07-25 18:47:19 -04:00
assertFalse(treeIterator.hasNext());
}
}