package test.testng173; import java.util.Arrays; import org.testng.ITestNGListener; import org.testng.TestNG; import org.testng.annotations.Test; import org.testng.xml.XmlClass; import org.testng.xml.XmlSuite; import org.testng.xml.XmlTest; import test.InvokedMethodNameListener; import test.SimpleBaseTest; import static org.assertj.core.api.Assertions.assertThat; public class TestNG173Test extends SimpleBaseTest { @Test public void orderShouldBePreservedInMethodsWithSameNameAndInDifferentClasses() { TestNG tng = create(); XmlSuite s = createXmlSuite("PreserveOrder"); XmlTest t = new XmlTest(s); t.getXmlClasses().add(new XmlClass("test.testng173.ClassA")); t.getXmlClasses().add(new XmlClass("test.testng173.ClassB")); t.setPreserveOrder(true); tng.setXmlSuites(Arrays.asList(s)); InvokedMethodNameListener listener = new InvokedMethodNameListener(); tng.addListener((ITestNGListener) listener); tng.run(); // bug //verifyPassedTests(tla, "test1", "test2", "testX", "test1", "test2"); // Proposed fix assertThat(listener.getSucceedMethodNames()).containsExactly("test1", "test2", "testX", "test2", "test1"); } @Test public void orderShouldBePreservedInMethodsWithSameNameAndInDifferentClassesAndDifferentPackage() { TestNG tng = create(); XmlSuite s = createXmlSuite("PreserveOrder"); XmlTest t = new XmlTest(s); t.getXmlClasses().add(new XmlClass("test.testng173.ClassA")); t.getXmlClasses().add(new XmlClass("test.testng173.anotherpackage.ClassC")); t.setPreserveOrder(true); tng.setXmlSuites(Arrays.asList(s)); InvokedMethodNameListener listener = new InvokedMethodNameListener(); tng.addListener((ITestNGListener) listener); tng.run(); // bug //verifyPassedTests(tla, "test1", "test2", "testX", "test1", "test2"); assertThat(listener.getSucceedMethodNames()).containsExactly("test1", "test2", "testX", "test2", "test1"); } }