1package test.factory;
2
3import static org.testng.Assert.assertFalse;
4
5import org.testng.IInstanceInfo;
6import org.testng.annotations.BeforeSuite;
7import org.testng.annotations.Factory;
8import org.testng.annotations.Parameters;
9import org.testng.internal.InstanceInfo;
10
11public class FactoryWithInstanceInfoTest {
12  static boolean m_invoked = false;
13
14  @Parameters({ "factory-param" })
15  @Factory
16  public IInstanceInfo[] createObjectsWithInstanceInfo(String param)
17  {
18    assert "FactoryParam".equals(param) : "Incorrect param: " + param;
19
20    assertFalse(m_invoked, "Should only be invoked once");
21    m_invoked = true;
22
23    return new IInstanceInfo[] {
24        new InstanceInfo(FactoryWithInstanceInfoTest2.class,
25            new FactoryWithInstanceInfoTest2(42)),
26        new InstanceInfo(FactoryWithInstanceInfoTest2.class,
27            new FactoryWithInstanceInfoTest2(43)),
28    };
29  }
30
31  @BeforeSuite
32  public void beforeSuite() {
33    m_invoked = false;
34  }
35
36  private static void ppp(String s) {
37    System.out.println("[FactoryWithInstanceInfoTest] " + s);
38  }
39}