@Factory(dataProvider="UserUIOperations")
public UsersUIOperationsTest(HashMap<String, String> input) {
this.data=input;
}
@DataProvider(name = "UserUIOperations")
public Object[][] createData() {
try {
Object[][] retObjArr = DataGenerator.getDataTable(testDataFileName, workSheetName);
return retObjArr;
} catch (Throwable e) {
FrameworkBase.logger.info(e);
return new Object[][] { {} };
}
}
@Test(dependsOnMethods ="UserCreationWithMandatoryFields" )
public void case2(HashMap<String, String> input) throws Exception {
FrameworkBase.logger
.info("================START OF TEST CASE : " + input.get("TestDescription") + "==================");
String[] test_steps = input.get("TestSteps").split(",");
for (String test_step : test_steps) {
FrameworkBase.logger.info("################Executing test step:" + test_step + " ##################");
switch (test_step) {
case "Login":
test_step_status = loginInstance.signIn(input.get(FrameworkConstants.LOGINUSER),
input.get(FrameworkConstants.LOGINPASSWORD), input.get("TestDescription"));
break;
case "CreateUser":
test_step_status = createUserIntsance.createUser(input.get("FirstName"), input.get("LastName"),
input.get("CN"), input.get("Password"), input.get("ConfirmPassword"), input.get("Title"),
input.get("Email"), input.get("Telephone_Number"),
input.get("Manager"), input.get("DirectReports"), input.get("UserImage"),
input.get("TestDescription"));
break;
case "DeleteUser":
test_step_status = manageUserInstance.deleteUser(input.get("DeleteSearchField"),
input.get("TestDescription"));
break;
@Test
public void test2(HashMap<String, String> input){
}
Getting this error:-
[AppClassLoader@12bb4df8] warning javax.* types are not being woven because the weaver option '-Xset:weaveJavaxPackages=true' has not been specified
org.testng.TestNGException:
Cannot instantiate class com.microfocus.idmappsui.tests.UsersUIOperationsTest
at org.testng.internal.InstanceCreator.newInstance(InstanceCreator.java:36)
at org.testng.internal.objects.SimpleObjectDispenser.dispense(SimpleObjectDispenser.java:40)
at org.testng.internal.objects.GuiceBasedObjectDispenser.dispense(GuiceBasedObjectDispenser.java:30)
at org.testng.internal.Parameters.findDataProvider(Parameters.java:651)
at org.testng.internal.Parameters.findDataProvider(Parameters.java:553)
at org.testng.internal.Parameters.handleParameters(Parameters.java:772)
at org.testng.internal.FactoryMethod.invoke(FactoryMethod.java:149)
at org.testng.internal.TestNGClassFinder.processFactory(TestNGClassFinder.java:182)
at org.testng.internal.TestNGClassFinder.processMethod(TestNGClassFinder.java:142)
at org.testng.internal.TestNGClassFinder.processClass(TestNGClassFinder.java:133)
at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:71)
at org.testng.TestRunner.initMethods(TestRunner.java:443)
at org.testng.TestRunner.init(TestRunner.java:339)
at org.testng.TestRunner.init(TestRunner.java:292)
at org.testng.TestRunner.<init>(TestRunner.java:223)
at org.testng.remote.support.RemoteTestNG6_12$1.newTestRunner(RemoteTestNG6_12.java:33)
at org.testng.remote.support.RemoteTestNG6_12$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG6_12.java:66)
at org.testng.ITestRunnerFactory.newTestRunner(ITestRunnerFactory.java:55)
at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:659)
at org.testng.SuiteRunner.init(SuiteRunner.java:173)
at org.testng.SuiteRunner.<init>(SuiteRunner.java:107)
at org.testng.TestNG.createSuiteRunner(TestNG.java:1300)
at org.testng.TestNG.createSuiteRunners(TestNG.java:1276)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1125)
at org.testng.TestNG.runSuites(TestNG.java:1063)
at org.testng.TestNG.run(TestNG.java:1031)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
Caused by: java.lang.InstantiationException: com.microfocus.idmappsui.tests.UsersUIOperationsTest
at java.base/java.lang.Class.newInstance(Class.java:571)
at org.testng.internal.InstanceCreator.newInstance(InstanceCreator.java:30)
... 28 more
Caused by: java.lang.NoSuchMethodException: com.microfocus.idmappsui.tests.UsersUIOperationsTest.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3349)
at java.base/java.lang.Class.newInstance(Class.java:556)
... 29 more
--
You received this message because you are subscribed to the Google Groups "testng-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to testng-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/testng-users/c635ed39-a7f6-4cf5-9986-6858f7025523n%40googlegroups.com.
import static org.assertj.core.api.Assertions.assertThat;
import java.lang.reflect.Method;
import java.util.Map;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class DynamicTestCase {
private static Map<String, Map<String, String>> allData;
@Test(description = "bangalore", dataProvider = "dp")
public void bangaloreRecordsTest(Map<String, String> testData) {
Map<String, String> expected = Map.of("language", "kannada", "status", "non-metro",
"is_analysed", "false");
System.err.println("bangaloreRecordsTest() test data was ==> " + testData);
assertThat(testData).containsAllEntriesOf(expected);
}
@Test(description = "chennai", dataProvider = "dp")
public void chennaiRecordsTest(Map<String, String> testData) {
Map<String, String> expected = Map.of("transport_corp_name", "SETC", "language", "tamil");
System.err.println("chennaiRecordsTest() test data was ==> " + testData);
assertThat(testData).containsAllEntriesOf(expected);
}
@Test(dataProvider = "dp")
public void kolkattaRecordsTest(Map<String, String> testData) {
//This test will be run twice because there are two sets of test data
System.err.println("kolkattaRecordsTest() test data was ==> " + testData);
}
@DataProvider(name = "dp")
public Object[][] getTestData(Method method) {
if (allData == null) {
//This is to ensure that we try and read data from our data source (For e.g., excel sheet)
//only once even though our data provider may be called "n" times by different test methods
allData = readAllTestData();
}
Test test = method.getAnnotation(Test.class);
//We use the description as a mechanism to tell us which row a test wants to execute
//This can always be done by adding a custom annotation as well and then parsed based on that.
String filterKey = test.description();
if (filterKey == null || filterKey.trim().isEmpty() || !allData.containsKey(filterKey)) {
//We will return back all the test data for all the cities if we find that
//there was no key specified (or) if the key specified is not present in our data source
return allData.values()
.stream()
.map(each -> new Object[]{each})
.toArray(Object[][]::new);
}
return new Object[][]{
new Object[]{allData.get(filterKey)}
};
}
private static Map<String, Map<String, String>> readAllTestData() {
return Map.of(
"chennai", Map.of("transport_corp_name", "SETC", "language", "tamil"),
"bangalore", Map.of("language", "kannada", "status", "non-metro", "is_analysed", "false")
);
}
}To view this discussion on the web visit https://groups.google.com/d/msgid/testng-users/b0b4e4d4-370c-410b-8f0c-6329bdb30aecn%40googlegroups.com.

To view this discussion on the web visit https://groups.google.com/d/msgid/testng-users/fc488029-425c-474b-b6d6-20ba197c4996n%40googlegroups.com.