package net.sf.cotta; import net.sf.cotta.memory.InMemoryFileSystem; import net.sf.cotta.test.TestCase; import java.util.ArrayList; import java.util.List; public class AbstractFileVisitorTest extends TestCase { public void testVisitAllFiles() throws Exception { TFileFactory factory = new TFileFactory(new InMemoryFileSystem()); TDirectory directory = factory.dir("/one/two"); TFile test = directory.file("one.txt").save("test"); TFile testTwo = directory.file("two.txt").save("testTwo"); TDirectory subdirectory = directory.dir("sub"); TFile testThree = subdirectory.file("three.txt").save("three"); TFile testFour = subdirectory.file("four.txt").save("four"); Visitor visitor = new Visitor(false); directory.visit(visitor); ensure.set(visitor.list).eq(test, testTwo); Visitor recursiveVisitor = new Visitor(true); directory.visit(recursiveVisitor); ensure.set(recursiveVisitor.list).eq(test, testTwo, testThree, testFour); } private static class Visitor extends AbstractFileVisitor { private List<TFile> list = new ArrayList<TFile>(); public Visitor(boolean recursive) { super(recursive); } public void visit(TFile file) { list.add(file); } } }