package test.inject; import org.testng.ITestContext; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import test.dataprovider.MyIterator; import java.util.Iterator; /** * Test that injection works for data providers. * * @author Cedric Beust, Mar 3, 2010 * */ public class InjectDataProviderTest { @DataProvider public Object[][] dp1() { return new Object[][] { new Object[] { 1, "a" }, new Object[] { 2, "b" }, }; } @Test(dataProvider = "dp1", enabled = true) public void dpObject1(Integer n, ITestContext ctx, String a) { } @Test(dataProvider = "dp1", enabled = true) public void dpObject2(ITestContext ctx, Integer n, String a) { } @Test(dataProvider = "dp1", enabled = true) public void dpObject3(Integer n, String a, ITestContext ctx) { } @DataProvider public Iterator<Object[]> dp2() { return new MyIterator( new Object[][] { new Object[] { 1, "a" }, new Object[] { 2, "b" }, }); } @Test(dataProvider = "dp2", enabled = false) public void dpIterator1(Integer n, ITestContext ctx, String a) { } @Test(dataProvider = "dp2", enabled = false) public void dpIterator2(ITestContext ctx, Integer n, String a) { } @Test(dataProvider = "dp2", enabled = false) public void dpIterator3(Integer n, String a, ITestContext ctx) { } }