package test.name.github1046;
import org.testng.IAlterTestName;
import org.testng.IHookCallBack;
import org.testng.IHookable;
import org.testng.ITestResult;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.Assert.assertNotEquals;
public class TestClassSample implements IHookable {
@DataProvider (name = "dp", parallel = true)
public Object[][] getTestData() {
return new Object[][] {
{1}, {2}, {3}, {4}, {5}
};
}
@Test (dataProvider = "dp")
public void testSample1(int num) {
assertNotEquals(num, 0);
}
@Test (dataProvider = "dp")
public void testSample2(int num) {
assertNotEquals(num, 0);
}
@Test
public void ordinaryTestMethod() {}
@Test
public void dontChangeName() {}
@Override
public void run(IHookCallBack callBack, ITestResult testResult) {
if (! ("dontChangeName".equals(testResult.getMethod().getMethodName()))) {
Object param = "999";
Object[] parameters = callBack.getParameters();
if (parameters.length != 0) {
param = parameters[0];
}
String testName = name(testResult.getMethod().getMethodName(), param);
if (testResult instanceof IAlterTestName) {
((IAlterTestName) testResult).setTestName(testName);
}
}
callBack.runTestMethod(testResult);
}
private static String name(String prefix, Object count) {
return prefix + "_TestNG_TestCase_" + count.toString();
}
}