package test.dataprovider; import org.testng.ITestNGListener; import org.testng.TestNG; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import test.InvokedMethodNameListener; import test.SimpleBaseTest; import static org.assertj.core.api.Assertions.assertThat; public class TestContextTest extends SimpleBaseTest { @Test public void verifySix() { // Not including any group, so the two test methods should fail TestNG tng = create(TestContextSample.class); InvokedMethodNameListener listener = new InvokedMethodNameListener(); tng.addListener((ITestNGListener) listener); tng.run(); assertThat(listener.getFailedMethodNames()).hasSize(2); } @DataProvider public static Object[][] dp() { return new Object[][]{ {10, "verifyTen"}, {5, "verifyFive"} }; } @Test(dataProvider = "dp") public void verify(int number, String passed) { TestNG tng = create(TestContextSample.class); tng.setGroups(String.valueOf(number)); InvokedMethodNameListener listener = new InvokedMethodNameListener(); tng.addListener((ITestNGListener) listener); tng.run(); assertThat(listener.getSucceedMethodNames()).hasSize(1); assertThat(listener.getSucceedMethodNames().get(0)).matches(passed + "\\(\\[foo(,foo){" + (number - 1) + "}?\\]\\)"); assertThat(listener.getFailedMethodNames()).isEmpty(); } }