package test.testng1231;
import com.beust.jcommander.internal.Lists;
import org.testng.*;
import org.testng.annotations.Test;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
import test.SimpleBaseTest;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class TestExecutionListenerInvocationOrder extends SimpleBaseTest {
@Test
public void testListenerOrder() {
XmlSuite xmlSuite = createXmlSuite("Suite");
XmlTest xmlTest = createXmlTest(xmlSuite, "Test");
createXmlClass(xmlTest, ListenerOrderTestSample.class);
TestNG tng = create(xmlSuite);
TestListenerFor1231 listener = new TestListenerFor1231();
tng.addListener((ITestNGListener) listener);
tng.run();
List<Integer> expected = Arrays.asList(1,2,3,4,5,6);
Assert.assertEquals(TestListenerFor1231.order, expected);
}
public static class TestListenerFor1231 implements IExecutionListener, IAlterSuiteListener, IReporter, ISuiteListener {
public static LinkedList<Integer> order = Lists.newLinkedList();
@Override
public void onExecutionStart() {
order.add(new Integer(1));
}
@Override
public void onExecutionFinish() {
order.add(new Integer(6));
}
@Override
public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
order.add(new Integer(5));
}
@Override
public void alter(List<XmlSuite> suites) {
order.add(new Integer(2));
}
@Override
public void onStart(ISuite suite) {
order.add(new Integer(3));
}
@Override
public void onFinish(ISuite suite) {
order.add(new Integer(4));
}
}
}