package test.factory;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import org.testng.IInstanceInfo;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Factory;
import org.testng.annotations.Parameters;
import org.testng.internal.InstanceInfo;
public class FactoryWithInstanceInfoTest {
static boolean isInvoked = false;
@Parameters({ "factory-param" })
@Factory
public IInstanceInfo[] createObjectsWithInstanceInfo(String param) {
assertEquals(param, "FactoryParam", "Incorrect param: " + param);
assertFalse(isInvoked, "Should only be invoked once");
isInvoked = true;
return new IInstanceInfo[] {
new InstanceInfo(FactoryWithInstanceInfo2Sample.class,
new FactoryWithInstanceInfo2Sample(42)),
new InstanceInfo(FactoryWithInstanceInfo2Sample.class,
new FactoryWithInstanceInfo2Sample(43)),
};
}
@BeforeSuite
public void beforeSuite() {
isInvoked = false;
}
}