package test.dataprovider;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.util.Arrays;
import java.util.Iterator;

public class IndicesSample {

  @DataProvider(indices = {2})
  public Object[][] dp1() {
    return new Object[][]{
        {1}, {2}, {3}
    };
  }

  @Test(dataProvider = "dp1")
  public void indicesShouldWork(int n) {
    if (n == 2) {
      throw new RuntimeException("This method should not have received a 2");
    }
  }

  @DataProvider(indices = {2})
  public Iterator<Object[]> dp2() {
    return Arrays.asList(
        new Object[]{1},
        new Object[]{2},
        new Object[]{3}
    ).iterator();
  }

  @Test(dataProvider = "dp2")
  public void indicesShouldWorkWithIterator(int n) {
    if (n == 2) {
      throw new RuntimeException("This method should not have received a 2");
    }
  }
}