package test.name; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.testng.Assert; import org.testng.ITestResult; import org.testng.TestListenerAdapter; import org.testng.TestNG; import org.testng.annotations.Test; import test.SimpleBaseTest; public class NameTest extends SimpleBaseTest { @Test public void itestTest() { TestNG tng = create(SimpleITestSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 1); ITestResult result = adapter.getPassedTests().get(0); Assert.assertEquals(result.getMethod().getMethodName(), "test"); Assert.assertEquals(result.getName(), "NAME"); Assert.assertEquals(result.getTestName(), "NAME"); } @Test public void itestTestWithXml() { TestNG tng = createTests("suite", SimpleITestSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 1); ITestResult result = adapter.getPassedTests().get(0); Assert.assertEquals(result.getMethod().getMethodName(), "test"); Assert.assertEquals(result.getName(), "NAME"); Assert.assertEquals(result.getTestName(), "NAME"); } @Test public void testNameTest() { TestNG tng = create(NameSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 1); ITestResult result = adapter.getPassedTests().get(0); Assert.assertEquals(result.getMethod().getMethodName(), "test"); Assert.assertEquals(result.getName(), "NAME"); Assert.assertEquals(result.getTestName(), "NAME"); } @Test public void testNameTestWithXml() { TestNG tng = createTests("suite", NameSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 1); ITestResult result = adapter.getPassedTests().get(0); Assert.assertEquals(result.getMethod().getMethodName(), "test"); Assert.assertEquals(result.getName(), "NAME"); Assert.assertEquals(result.getTestName(), "NAME"); } @Test public void noNameTest() { TestNG tng = create(NoNameSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 1); ITestResult result = adapter.getPassedTests().get(0); Assert.assertEquals(result.getMethod().getMethodName(), "test"); Assert.assertEquals(result.getName(), "test"); Assert.assertEquals(result.getTestName(), null); } @Test public void noNameTestWithXml() { TestNG tng = createTests("suite", NoNameSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 1); ITestResult result = adapter.getPassedTests().get(0); Assert.assertEquals(result.getMethod().getMethodName(), "test"); Assert.assertEquals(result.getName(), "test"); Assert.assertEquals(result.getTestName(), null); } @Test public void complexITestTest() { TestNG tng = create(ITestSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 5); List<String> testNames = new ArrayList<>(Arrays.asList("test1", "test2", "test3", "test4", "test5")); for (ITestResult testResult : adapter.getPassedTests()) { Assert.assertTrue(testNames.remove(testResult.getName()), "Duplicate test names " + getNames(adapter.getPassedTests())); } Assert.assertEquals(testNames, Collections.emptyList()); } private static List<String> getNames(List<ITestResult> results) { List<String> names = new ArrayList<>(results.size()); for (ITestResult result : results) { names.add(result.getName()); } return names; } @Test(description = "GITHUB-922: ITestResult doesn't contain name if a class has @Test") public void testOnClassFromReporter() { TestNG tng = create(TestOnClassSample.class); TestOnClassListener listener = new TestOnClassListener(); tng.addListener(listener); tng.run(); Assert.assertEquals(listener.getNames().size(), 1); Assert.assertEquals(listener.getNames().get(0), "test"); // testName should be ignored if not specified Assert.assertEquals(listener.getTestNames().size(), 1); Assert.assertEquals(listener.getTestNames().get(0), null); } @Test public void blankNameTest() { TestNG tng = create(BlankNameSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 1); ITestResult result = adapter.getPassedTests().get(0); Assert.assertEquals(result.getMethod().getMethodName(), "test"); Assert.assertEquals(result.getName(), ""); Assert.assertEquals(result.getTestName(), ""); } @Test public void blankNameTestWithXml() { TestNG tng = createTests("suite", BlankNameSample.class); TestListenerAdapter adapter = new TestListenerAdapter(); tng.addListener(adapter); tng.run(); Assert.assertTrue(adapter.getFailedTests().isEmpty()); Assert.assertTrue(adapter.getSkippedTests().isEmpty()); Assert.assertEquals(adapter.getPassedTests().size(), 1); ITestResult result = adapter.getPassedTests().get(0); Assert.assertEquals(result.getMethod().getMethodName(), "test"); Assert.assertEquals(result.getName(), ""); Assert.assertEquals(result.getTestName(), ""); } }