package test.jar;
import org.testng.Assert;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.annotations.Test;
import test.SimpleBaseTest;
import java.io.File;
import java.util.Arrays;
public class JarTest extends SimpleBaseTest {
private TestListenerAdapter init(String jarFile) {
TestNG tng = create();
String finalPath = getPathToResource(jarFile);
tng.setTestJar(finalPath);
TestListenerAdapter result = new TestListenerAdapter();
tng.addListener(result);
tng.run();
return result;
}
@Test
public void jarWithTestngXml() {
TestListenerAdapter tla = init("withtestngxml.jar");
Assert.assertEquals(tla.getPassedTests().size(), 1);
Assert.assertEquals(tla.getPassedTests().get(0).getMethod().getMethodName(), "f");
}
@Test
public void jarWithoutTestngXml() {
TestListenerAdapter tla = init("withouttestngxml.jar");
Assert.assertEquals(tla.getPassedTests().size(), 2);
String first = tla.getPassedTests().get(0).getMethod().getMethodName();
String second = tla.getPassedTests().get(1).getMethod().getMethodName();
Assert.assertTrue("f".equals(first) || "g".equals(first));
Assert.assertTrue("f".equals(second) || "g".equals(second));
}
@Test
public void jarWithTestngXmlOverriddenOnCommandLine() {
TestNG tng = create();
String finalPath = getPathToResource("withtestngxml.jar");
tng.setTestJar(finalPath);
tng.setTestSuites(Arrays.asList(getPathToResource("testng-override.xml")));
TestListenerAdapter tla = new TestListenerAdapter();
tng.addListener(tla);
tng.run();
Assert.assertEquals(tla.getPassedTests().size(), 2);
String first = tla.getPassedTests().get(0).getMethod().getMethodName();
String second = tla.getPassedTests().get(1).getMethod().getMethodName();
Assert.assertTrue("f".equals(first) || "g".equals(first));
Assert.assertTrue("f".equals(second) || "g".equals(second));
}
}