| package test.dependent.xml; |
| |
| import org.testng.Assert; |
| import org.testng.ITestResult; |
| import org.testng.TestListenerAdapter; |
| import org.testng.TestNG; |
| import org.testng.annotations.DataProvider; |
| import org.testng.annotations.Test; |
| import org.testng.xml.XmlSuite; |
| import org.testng.xml.XmlTest; |
| |
| import test.SimpleBaseTest; |
| |
| import java.util.Arrays; |
| import java.util.List; |
| |
| public class GroupDependencyTest extends SimpleBaseTest { |
| @DataProvider |
| public Object[][] dp() { |
| return new Object[][] { |
| new Object[] { new String[] { "a", "b", "c", "a1", "b1", "c1" } }, |
| new Object[] { new String[] { "a", "c", "b", "a1", "c1", "b1" } }, |
| new Object[] { new String[] { "b", "a", "c", "b1", "a1", "c1" } }, |
| new Object[] { new String[] { "b", "c", "a", "b1", "c1", "a1" } }, |
| new Object[] { new String[] { "c", "b", "a", "c1", "b1", "a1" } }, |
| new Object[] { new String[] { "c", "a", "b", "c1", "a1", "b1" } }, |
| }; |
| } |
| |
| @Test(dataProvider = "dp") |
| public void verifyGroupSingle(String[] a) { |
| configureGroup(a, false /* single */); |
| } |
| |
| @Test(dataProvider = "dp") |
| public void verifyGroupMulti(String[] a) { |
| configureGroup(a, true /* multi */); |
| } |
| |
| private void configureGroup(String[] a, boolean multi) { |
| XmlSuite suite = createXmlSuite("Dependencies"); |
| XmlTest test = |
| createXmlTest(suite, "DependencyTest", GroupDependencySampleTest.class.getName()); |
| if (multi) { |
| test.addXmlDependencyGroup(a[2], a[1] + " " + a[0]); |
| } else { |
| test.addXmlDependencyGroup(a[2], a[1]); |
| test.addXmlDependencyGroup(a[1], a[0]); |
| } |
| |
| TestNG tng = create(); |
| tng.setXmlSuites(Arrays.asList(suite)); |
| TestListenerAdapter tla = new TestListenerAdapter(); |
| tng.addListener(tla); |
| tng.run(); |
| |
| List<ITestResult> t = tla.getPassedTests(); |
| String method2 = t.get(2).getMethod().getMethodName(); |
| if (multi) { |
| // When we have "a depends on groups b and c", the only certainty is that "a" |
| // will be run last |
| Assert.assertEquals(method2, a[5]); |
| } else { |
| assertTestResultsEqual(tla.getPassedTests(), Arrays.asList(a[3], a[4], a[5])); |
| } |
| } |
| } |