package org.testng.eclipse.util;
import org.testng.reporters.XMLStringBuffer;
import org.testng.xml.LaunchSuite;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
* Factory to create custom suites.
*
* @author Hani Suleiman
*/
public class SuiteGenerator {
public static LaunchSuite createProxiedXmlSuite(final File xmlSuitePath) {
return new LaunchSuite.ExistingSuite(xmlSuitePath);
}
public static LaunchSuite createCustomizedSuite(String projectName,
List<String> packageNames, List<String> classNames, Map<String, List<String>> methodNames,
List<String> groupNames, Map<String, String> parameters,
int logLevel) {
if((null != groupNames) && !groupNames.isEmpty()) {
return new GroupListSuite(projectName, packageNames, classNames, groupNames, parameters,
logLevel);
}
else if(null != packageNames && !packageNames.isEmpty()) {
return new PackageSuite(projectName, packageNames, parameters, logLevel);
}
else {
return new ClassMethodsSuite(projectName, classNames, methodNames, parameters,
logLevel);
}
}
public static String createSingleClassSuite(String className) {
XMLStringBuffer xsb = new XMLStringBuffer();
Properties p = new Properties();
p.put("name", "Suite");
p.put("parallel", "false");
xsb.push("suite", p);
p = new Properties();
p.put("name", "Test");
xsb.push("test", p);
xsb.push("classes");
p = new Properties();
p.put("name", className);
xsb.addEmptyElement("class", p);
xsb.pop("classes");
xsb.pop("test");
xsb.pop("suite");
return xsb.toXML();
}
}