@Test
public void testExcludeFilter() throws Exception {
Path file = Paths.get(".");
FilesystemConfig fsConfig = new FilesystemConfig();
fsConfig.setPath(file.toString());
fsConfig.setExcludedPaths(new String[]{"(.*/)?\\.[^/]*", "(.*/)?[^/]*foo[^/]*", "(.*/)?[^/]*\\.bin"});
FilesystemStorage storage = new FilesystemStorage();
storage.setConfig(fsConfig);
storage.configure(storage, null, null);
DirectoryStream.Filter<Path> filter = storage.getFilter();
String[] positiveTests = new String[]{"bar.txt", "a.out", "this has spaces", "n.o.t.h.i.n.g"};
for (String test : positiveTests) {
Assert.assertTrue("filter should have accepted " + test, filter.accept(file.resolve(test)));
}
String[] negativeTests = new String[]{".svn", ".snapshots", ".f.o.o", "foo.txt", "ffoobar", "mywarez.bin",
"in.the.round.bin"};
for (String test : negativeTests) {
Assert.assertFalse("filter should have rejected " + test, filter.accept(file.resolve(test)));
}
}