package test.github1362;
import org.testng.ITestNGListener;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.xml.XmlSuite;
import test.InvokedMethodNameListener;
import test.SimpleBaseTest;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.testng.Assert.assertTrue;
public class AfterGroupsTestInvolvingInterceptors extends SimpleBaseTest {
@Test
public void testMethod() {
runTests(new LocalMethodInterceptor(), "setup", "test1", "test3", "clear");
}
@Test
public void testMethodWithoutInterceptor() {
runTests(null, "setup", "test1", "test2", "test3", "clear");
}
private void runTests(ITestNGListener interceptor, String... names) {
List<String> expected = Arrays.asList(names);
XmlSuite xmlsuite = createXmlSuite("suite", "test", TestSample.class);
xmlsuite.getTests().get(0).setIncludedGroups(Collections.singletonList("exTests"));
TestNG testng = create(xmlsuite);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
testng.addListener((ITestNGListener) listener);
if (interceptor != null) {
testng.addListener(interceptor);
}
testng.run();
for (String each : listener.getInvokedMethodNames()) {
assertTrue(expected.contains(each), each + " not found in expected invocation methods " + expected);
}
}
}