package test;
|
|
import org.testng.Assert;
|
import org.testng.ITestResult;
|
import org.testng.TestListenerAdapter;
|
import org.testng.TestNG;
|
import org.testng.collections.Lists;
|
import org.testng.internal.Utils;
|
import org.testng.xml.XmlClass;
|
import org.testng.xml.XmlInclude;
|
import org.testng.xml.XmlSuite;
|
import org.testng.xml.XmlTest;
|
|
import java.io.File;
|
import java.util.Arrays;
|
import java.util.Iterator;
|
import java.util.List;
|
|
public class SimpleBaseTest {
|
// System property specifying where the resources (e.g. xml files) can be found
|
private static final String TEST_RESOURCES_DIR = "test.resources.dir";
|
|
public static TestNG create() {
|
TestNG result = new TestNG();
|
result.setUseDefaultListeners(false);
|
result.setVerbose(0);
|
return result;
|
}
|
|
public static TestNG create(Class<?>... testClasses) {
|
TestNG result = create();
|
result.setTestClasses(testClasses);
|
return result;
|
}
|
|
protected TestNG create(XmlSuite... suites) {
|
TestNG result = create();
|
result.setXmlSuites(Arrays.asList(suites));
|
return result;
|
}
|
|
protected TestNG createTests(String suiteName, Class<?>... testClasses) {
|
XmlSuite suite = createXmlSuite(suiteName);
|
int i=0;
|
for (Class<?> testClass : testClasses) {
|
createXmlTest(suite, testClass.getName() + i, testClass);
|
i++;
|
}
|
return create(suite);
|
}
|
|
protected XmlSuite createXmlSuite(String name) {
|
XmlSuite result = new XmlSuite();
|
result.setName(name);
|
return result;
|
}
|
|
protected XmlTest createXmlTest(XmlSuite suite, String name, Class clazz, Class... classes) {
|
XmlTest result = new XmlTest(suite);
|
int index = 0;
|
result.setName(name);
|
XmlClass xc = new XmlClass(clazz.getName(), index++, true /* load classes */);
|
result.getXmlClasses().add(xc);
|
for (Class c : classes) {
|
xc = new XmlClass(c.getName(), index++, true /* load classes */);
|
result.getXmlClasses().add(xc);
|
}
|
|
return result;
|
}
|
|
protected XmlTest createXmlTest(XmlSuite suite, String name, String... classes) {
|
XmlTest result = new XmlTest(suite);
|
int index = 0;
|
result.setName(name);
|
for (String c : classes) {
|
XmlClass xc = new XmlClass(c, index++, true /* load classes */);
|
result.getXmlClasses().add(xc);
|
}
|
|
return result;
|
}
|
|
protected void addMethods(XmlClass cls, String... methods) {
|
int index = 0;
|
for (String m : methods) {
|
XmlInclude include = new XmlInclude(m, index++);
|
cls.getIncludedMethods().add(include);
|
}
|
}
|
|
public static String getPathToResource(String fileName) {
|
String result = System.getProperty(TEST_RESOURCES_DIR);
|
if (result == null) {
|
throw new IllegalArgumentException("System property " + TEST_RESOURCES_DIR + " was not defined.");
|
}
|
return result + File.separatorChar + fileName;
|
}
|
|
protected void verifyPassedTests(TestListenerAdapter tla, String... methodNames) {
|
Iterator<ITestResult> it = tla.getPassedTests().iterator();
|
Assert.assertEquals(tla.getPassedTests().size(), methodNames.length);
|
|
int i = 0;
|
while (it.hasNext()) {
|
Assert.assertEquals(it.next().getName(), methodNames[i++]);
|
}
|
}
|
|
/**
|
* Compare a list of ITestResult with a list of String method names,
|
*/
|
public static void assertTestResultsEqual(List<ITestResult> results, List<String> methods) {
|
List<String> resultMethods = Lists.newArrayList();
|
for (ITestResult r : results) {
|
resultMethods.add(r.getMethod().getMethodName());
|
}
|
Assert.assertEquals(resultMethods, methods);
|
}
|
|
}
|