package org.codehaus.mojo.jaxb2.shared.filters.pattern;
import org.codehaus.mojo.jaxb2.BufferingLog;
import org.codehaus.mojo.jaxb2.shared.FileSystemUtilities;
import org.junit.Assert;
import org.junit.Before;
import java.io.File;
import java.net.URL;
import java.util.Map;
import java.util.TreeMap;
/**
* @author <a href="mailto:lj@jguru.se">Lennart Jörelid</a>, jGuru Europe AB
*/
public abstract class AbstractPatternFilterTest {
// Shared state
protected File exclusionDirectory;
protected File[] fileList;
protected BufferingLog log;
@Before
@SuppressWarnings("all")
public void setupSharedState() {
log = new BufferingLog(BufferingLog.LogLevel.DEBUG);
final URL exclusionDirUrl = getClass().getClassLoader().getResource("testdata/shared/filefilter/exclusion");
exclusionDirectory = new File(exclusionDirUrl.getPath());
Assert.assertTrue(FileSystemUtilities.EXISTING_DIRECTORY.accept(exclusionDirectory));
fileList = exclusionDirectory.listFiles();
for (File current : fileList) {
Assert.assertTrue(FileSystemUtilities.EXISTING_FILE.accept(current));
}
// Delegate
onSetup();
}
protected void onSetup() {
// Do nothing
}
protected <T> Map<String, Boolean> applyFilterAndRetrieveResults(final AbstractPatternFilter<T> unitUnderTest,
final T[] candidates,
final StringConverter<T> converter) {
Map<String, Boolean> toReturn = new TreeMap<String, Boolean>();
for (T current : candidates) {
toReturn.put(converter.convert(current), unitUnderTest.accept(current));
}
return toReturn;
}
}