Browse Source

added 3 new testcases for DirectoryScanner

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274808 13f79535-47bb-0310-9956-ffa450edef68
master
Antoine Levy-Lambert 22 years ago
parent
commit
2e4d3619aa
2 changed files with 75 additions and 1 deletions
  1. +14
    -0
      src/etc/testcases/core/directoryscanner.xml
  2. +61
    -1
      src/testcases/org/apache/tools/ant/DirectoryScannerTest.java

+ 14
- 0
src/etc/testcases/core/directoryscanner.xml View File

@@ -0,0 +1,14 @@
<project name="directoryscanner-test" basedir=".">
<property name="tmp.dir" location="tmp"/>
<target name="setup">
<mkdir dir="${tmp.dir}"/>
<mkdir dir="${tmp.dir}/alpha"/>
<mkdir dir="${tmp.dir}/alpha/beta"/>
<mkdir dir="${tmp.dir}/alpha/beta/gamma"/>
<touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
<touch file="${tmp.dir}/alpha/beta/beta.xml"/>
</target>
<target name="cleanup">
<delete dir="${tmp.dir}" quiet="true"/>
</target>
</project>

+ 61
- 1
src/testcases/org/apache/tools/ant/DirectoryScannerTest.java View File

@@ -62,13 +62,15 @@ import junit.framework.TestCase;
import junit.framework.AssertionFailedError;
import java.io.File;
import java.io.IOException;
import java.util.TreeSet;
import java.util.Iterator;

/**
* JUnit 3 testcases for org.apache.tools.ant.DirectoryScanner
*
* @author Stefan Bodewig
*/
public class DirectoryScannerTest extends TestCase {
public class DirectoryScannerTest extends BuildFileTest {

public DirectoryScannerTest(String name) {super(name);}

@@ -76,6 +78,64 @@ public class DirectoryScannerTest extends TestCase {
private boolean supportsSymlinks = Os.isFamily("unix")
&& !JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1);

public void setUp() {
configureProject("src/etc/testcases/core/directoryscanner.xml");
getProject().executeTarget("setup");
}
private void compareFiles(DirectoryScanner ds, String[] expectedFiles, String[] expectedDirectories) {
String includedFiles[] = ds.getIncludedFiles();
String includedDirectories[] = ds.getIncludedDirectories();
assertTrue("expecting : " + expectedFiles.length + " files, present : " + includedFiles.length, includedFiles.length == expectedFiles.length);
assertTrue("expecting : " + expectedDirectories.length + " directories, present : " + includedDirectories.length, includedDirectories.length == expectedDirectories.length);
TreeSet files = new TreeSet();
for (int counter=0; counter < includedFiles.length; counter++) {
files.add(includedFiles[counter].replace(File.separatorChar,'/'));
}
TreeSet directories = new TreeSet();
for (int counter=0; counter < includedDirectories.length; counter++) {
directories.add(includedDirectories[counter].replace(File.separatorChar,'/'));
}
String currentfile;
Iterator i = files.iterator();
int counter = 0;
while (i.hasNext()) {
currentfile = (String) i.next();
assertTrue("expecting file " + expectedFiles[counter], currentfile.equals(expectedFiles[counter]));
counter++;
}
String currentdirectory;
Iterator dirit = directories.iterator();
counter = 0;
while (dirit.hasNext()) {
currentdirectory = (String) dirit.next();
assertTrue("expecting directory " + expectedDirectories[counter], currentdirectory.equals(expectedDirectories[counter]));
counter++;
}

}
public void test1() {
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
ds.setIncludes(new String[] {"alpha"});
ds.scan();
compareFiles(ds, new String[] {} ,new String[] {"alpha"});
}
public void test2() {
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
ds.setIncludes(new String[] {"alpha/"});
ds.scan();
compareFiles(ds, new String[] {"alpha/beta/beta.xml", "alpha/beta/gamma/gamma.xml"} ,new String[] {"alpha", "alpha/beta", "alpha/beta/gamma"});
}
public void test3() {
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));
ds.scan();
compareFiles(ds, new String[] {"alpha/beta/beta.xml", "alpha/beta/gamma/gamma.xml"} ,new String[] {"", "alpha", "alpha/beta", "alpha/beta/gamma"});
}
public void tearDown() {
getProject().executeTarget("cleanup");
}
/**
* Test case for setFollowLinks() and associated funtionality.
* Only supports test on linux, at the moment because Java has


Loading…
Cancel
Save