blob: d78545fa7aad5fdd3938d1a0ba45926b6713be29 [file] [log] [blame]
package org.eclipse.photran.internal.tests;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOException;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* A {@link TestSuite} containing a test for each file found in the subdirectories of a particular
* directory.
* <p>
* Subclasses must override {@link #test(File)}.
* <p>
* To run an entire suite of tests for the given file, or to construct an arbitrary TestCase,
* subclass from {@link GeneralTestSuiteFromFiles} instead.
*
* @author Jeff Overbey
*/
public abstract class TestSuiteFromFiles extends GeneralTestSuiteFromFiles
{
public TestSuiteFromFiles(String description, String directorySuffix, FilenameFilter filenameFilter,
boolean mustExist) throws FileNotFoundException, IOException
{
super(description, directorySuffix, filenameFilter, mustExist);
}
public TestSuiteFromFiles(String description, String directorySuffix, FilenameFilter filenameFilter)
throws FileNotFoundException, IOException
{
super(description, directorySuffix, filenameFilter);
}
public TestSuiteFromFiles(String description, String directorySuffix, final String filenameExtension,
boolean mustExist) throws FileNotFoundException, IOException
{
super(description, directorySuffix, filenameExtension, mustExist);
}
public TestSuiteFromFiles(String description, String directorySuffix, final String filenameExtension)
throws FileNotFoundException, IOException
{
super(description, directorySuffix, filenameExtension);
}
@Override
protected final Test createTestFor(final File file)
{
return new SimpleFileTestCase(file) {};
}
public abstract class SimpleFileTestCase extends TestCase
{
protected File file;
public SimpleFileTestCase(File file)
{
super("test"); //$NON-NLS-1$
this.file = file;
}
public void test() throws Exception
{
TestSuiteFromFiles.this.test(file);
}
}
protected abstract void test(File file) throws Exception;
}