package test.factory.github1131;
import org.testng.Assert;
import org.testng.ITestNGListener;
import org.testng.TestNG;
import org.testng.annotations.Test;
import test.InvokedMethodNameListener;
import test.SimpleBaseTest;
import static org.assertj.core.api.Assertions.assertThat;
public class GitHub1131Test extends SimpleBaseTest {
@Test
public void testFactoryOnEmptyConstructor() {
EmptyConstructorSample.count = 0;
TestNG tng = create(EmptyConstructorSample.class);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).containsExactly("test", "test");
Assert.assertEquals(EmptyConstructorSample.count, 2);
}
@Test
public void testFactoryOnIntConstructor() {
IntConstructorSample.parameters.clear();
TestNG tng = create(IntConstructorSample.class);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).containsExactly("test", "test");
assertThat(IntConstructorSample.parameters).containsExactly(1, 2);
}
@Test
public void testFactoryOnStringConstructor() {
StringConstructorSample.parameters.clear();
TestNG tng = create(StringConstructorSample.class);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).containsExactly("test", "test");
assertThat(StringConstructorSample.parameters).containsExactly("foo", "bar");
}
}