@Test(dataProvider = "JsonDataProvider")
public void testDataProviderOne(DataModelA testData) {
System.out.println(testData.getTestDataAA());
System.out.println(testData.getTestDataAB());
}
@Test(dataProvider = "JsonDataProvider")
public void testDataProviderTwo(DataModelB testData) {
System.out.println(testData.getTestDataBA());
System.out.println(testData.getTestDataBB());
}
@DataProvider(name = "JsonDataProvider")
protected static Object[][] getJsonDataModel() {
return new Object[][]{ { new DataModelA() } };
}
public class UbiquitousDataProviderSample {
@Test(dataProvider = "dp", groups = "students")
public void testStudents(CommonData data) {
Assert.assertTrue(data instanceof Student);
}
@Test(dataProvider = "dp", groups = "runner")
public void testRunnerNames(CommonData data) {
Assert.assertTrue(data instanceof TestRunner);
}
@DataProvider(name = "dp")
public Object[][] getData(ITestContext context) {
String testName = context.getCurrentXmlTest().getName();
String type = context.getCurrentXmlTest().getParameter("type");
System.err.println(testName + " passed " + type + " as the type .");
Object[][] object = null;
switch (type) {
case "student":
object = new Object[][] {
{new Student("Jack", 10)},
{new Student("Jill", 12)}
};
break;
case "runner":
object = new Object[][] {
{new TestRunner("TestNG")},
{new TestRunner("JUnit")}
};
}
return object;
}
/**
* Marker interface just to establish commonality
*/
interface CommonData {}
public static class Student implements CommonData {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public static class TestRunner implements CommonData {
private String runnerName;
public TestRunner(String runnerName) {
this.runnerName = runnerName;
}
public String getRunnerName() {
return runnerName;
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Ubiquity-suite" verbose="2">
<test name="ubiquity-test1">
<parameter name="type" value="student"/>
<groups>
<run>
<include name="students"/>
</run>
</groups>
<classes>
<class name="organized.chaos.testng.UbiquitousDataProviderSample"/>
</classes>
</test>
<test name="ubiquity-test2">
<parameter name="type" value="runner"/>
<groups>
<run>
<include name="runner"/>
</run>
</groups>
<classes>
<class name="organized.chaos.testng.UbiquitousDataProviderSample"/>
</classes>
</test>
</suite>
--
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+unsubscribe@googlegroups.com.
To post to this group, send email to testng...@googlegroups.com.
Visit this group at https://groups.google.com/group/testng-users.
For more options, visit https://groups.google.com/d/optout.