// This product is provided under the terms of EPL (Eclipse Public License)
// version 1.0.
//
// The full license text can be read from: http://www.eclipse.org/org/documents/epl-v10.php
package org.dtangler.core.filefinder;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import org.junit.Test;
public class FullPathWildCardFileFilterTest {
@Test
public void testExtensionFilter() {
FullPathWildCardFileFilter f = new FullPathWildCardFileFilter(Arrays
.asList(".class"), Collections.EMPTY_LIST);
assertTrue(f.accept(new File("/foo.class")));
assertTrue(f.accept(new File("/BAR.CLASS")));
assertTrue(f.accept(new File("/foo/bar.class")));
assertFalse(f.accept(new File("/foo.java")));
assertFalse(f.accept(new File("/foo/bar.java")));
assertFalse(f.accept(new File("/class/foo.java")));
}
@Test
public void testExcludeLiteral() {
FullPathWildCardFileFilter f = new FullPathWildCardFileFilter(Arrays
.asList(".class"), Arrays.asList(new File("/foo.class")
.getAbsolutePath()));
assertFalse(f.accept(new File("/foo.class")));
assertTrue(f.accept(new File("/FOO.CLASS")));
assertTrue(f.accept(new File("/foo1.class")));
assertTrue(f.accept(new File("/1foo.class")));
}
@Test
public void testExcludeMaskWithWildCardStart() {
FullPathWildCardFileFilter f = new FullPathWildCardFileFilter(Arrays
.asList(".class"), Arrays.asList("*foo.class"));
assertFalse(f.accept(new File("/foo.class")));
assertFalse(f.accept(new File("/bar/foo.class")));
assertFalse(f.accept(new File("anotherfoo.class")));
assertTrue(f.accept(new File("foobar.class")));
assertTrue(f.accept(new File("foo/bar.class")));
}
@Test
public void testExcludeMaskWithWildCardEnd() {
FullPathWildCardFileFilter f = new FullPathWildCardFileFilter(Arrays
.asList(".class"), Arrays.asList(new File("/foo*")
.getAbsolutePath()));
assertFalse(f.accept(new File("/foo.class")));
assertFalse(f.accept(new File("/foobar.class")));
assertFalse(f.accept(new File("/foo/bar.class")));
assertTrue(f.accept(new File("/bar/foo.class")));
assertTrue(f.accept(new File("/afoo.class")));
}
@Test
public void testExcludeMaskWithMultipleWildCards() {
FullPathWildCardFileFilter f = new FullPathWildCardFileFilter(Arrays
.asList(".class"), Arrays.asList("*foo*bar*"));
assertTrue(f.accept(new File("/foo.class")));
assertTrue(f.accept(new File("/bar.class")));
assertFalse(f.accept(new File("/foobar.class")));
assertFalse(f.accept(new File("/foo/bar.class")));
assertFalse(f.accept(new File("/foo/bay/bar.class")));
}
@Test
public void testInsameWildCards() {
FullPathWildCardFileFilter f = new FullPathWildCardFileFilter(Arrays
.asList(".class"), Arrays.asList("***foo*****bar**"));
assertTrue(f.accept(new File("/foo.class")));
assertTrue(f.accept(new File("/bar.class")));
assertFalse(f.accept(new File("/foobar.class")));
assertFalse(f.accept(new File("/foo/bar.class")));
assertFalse(f.accept(new File("/foo/bay/bar.class")));
}
@Test
public void testMultipleMasks() {
FullPathWildCardFileFilter f = new FullPathWildCardFileFilter(Arrays
.asList(".class"), Arrays.asList("*foo*", "*bar*"));
assertFalse(f.accept(new File("/foo.class")));
assertFalse(f.accept(new File("/bar.class")));
assertTrue(f.accept(new File("/bay.class")));
}
@Test
public void testMultipleExtensions() {
FullPathWildCardFileFilter f = new FullPathWildCardFileFilter(Arrays
.asList(".class", ".jar"), Collections.EMPTY_LIST);
assertTrue(f.accept(new File("/foo.class")));
assertTrue(f.accept(new File("/foo.jar")));
assertFalse(f.accept(new File("/foo.jarclass")));
}
}