@Test
public void testAnd() throws Exception {
final IOFileFilter trueFilter = TrueFileFilter.INSTANCE;
final IOFileFilter falseFilter = FalseFileFilter.INSTANCE;
assertFiltering(new AndFileFilter(trueFilter, trueFilter), new File("foo.test"), true);
assertFiltering(new AndFileFilter(trueFilter, falseFilter), new File("foo.test"), false);
assertFiltering(new AndFileFilter(falseFilter, trueFilter), new File("foo.test"), false);
assertFiltering(new AndFileFilter(falseFilter, falseFilter), new File("foo.test"), false);
final List<IOFileFilter> filters = new ArrayList<>();
assertFiltering( new AndFileFilter( filters ), new File( "test" ), false );
assertFiltering( new AndFileFilter(), new File( "test" ), false );
try {
new AndFileFilter(falseFilter, null);
fail();
} catch (final IllegalArgumentException ignore) {
}
try {
new AndFileFilter(null, falseFilter);
fail();
} catch (final IllegalArgumentException ignore) {
}
final AndFileFilter f = new AndFileFilter(null);
assertTrue(f.getFileFilters().isEmpty());
assertNotNull(f.toString());
}