package com.canoo.ant; import java.io.File; import java.util.List; import junit.framework.TestCase; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.resources.FileResource; public class WebTestSuiteTaskTest extends TestCase { private WebTestSuiteTask task; public void test_buildWebTestListWithBasicTestSuite() throws Exception { File webtestdir = new File(getClass().getResource("basictestsuite").toURI()); task.setWebtestdir(webtestdir); List fileList = task.buildWebTestList(); assertFileList(fileList, new String[]{ "Test1.xml", "Test2.xml", }); } public void test_buildWebTestListWithComplexTestSuite() throws Exception { File webtestdir = new File(getClass().getResource("complextestsuite").toURI()); task.setWebtestdir(webtestdir); List fileList = task.buildWebTestList(); assertFileList(fileList, new String[]{ "Test1.xml", "Test2.xml", "subfolder1\\Test1.xml", "subfolder1\\Test2.xml", "subfolder2\\Test1.xml", "subfolder2\\Test2.xml", }); } public void test_buildWebTestListWithIncludePatternExpression() throws Exception { File webtestdir = new File(getClass().getResource("complextestsuite").toURI()); task.setWebtestdir(webtestdir); task.setIncludefilepattern("subfolder*/*.xml"); List fileList = task.buildWebTestList(); assertFileList(fileList, new String[]{ "subfolder1\\Test1.xml", "subfolder1\\Test2.xml", "subfolder2\\Test1.xml", "subfolder2\\Test2.xml", }); task.setIncludefilepattern("**/Test1.xml"); fileList = task.buildWebTestList(); assertFileList(fileList, new String[]{ "Test1.xml", "subfolder1\\Test1.xml", "subfolder2\\Test1.xml", }); } public void test_buildWebTestListWithExcludePatternExpression() throws Exception { File webtestdir = new File(getClass().getResource("complextestsuite").toURI()); task.setWebtestdir(webtestdir); task.setExcludefilepattern("subfolder1/*.xml"); List fileList = task.buildWebTestList(); assertFileList(fileList, new String[]{ "Test1.xml", "Test2.xml", "subfolder2\\Test1.xml", "subfolder2\\Test2.xml", }); } public void test_failWithWebTestDirNotSet() throws Exception { try { task.execute(); fail(); } catch (BuildException ex) { assertEquals("webtestDir is not set or is not a directory", ex.getMessage()); } } public void test_failWithWebTestIsNotADirectory() throws Exception { try { File webtestdir = new File(getClass().getResource("basictestsuite/Test1.xml").toURI()); task.setWebtestdir(webtestdir); task.execute(); fail(); } catch (BuildException ex) { assertEquals("webtestDir is not set or is not a directory", ex.getMessage()); } } public void test_generateReport() throws Exception { File webtestdir = new File(getClass().getResource("basictestsuite").toURI()); File reportFile = new File(getClass().getResource("report/report.xml").toURI()); task.setWebtestdir(webtestdir); task.setReportgeneratorfile(reportFile); task.execute(); } private void assertFileList(List actualfileList, String[] expectedFileList) { assertEquals(expectedFileList.length, actualfileList.size()); for (int i = 0; i < expectedFileList.length; i++) { String expectedFile = expectedFileList[i]; FileResource actualFile = actualfileList.get(i); assertEquals(expectedFile, actualFile.getName()); } } @Override public void setUp() { Project project = new Project(); task = new WebTestSuiteTask(); task.setProject(project); } }