package test.listeners;
import org.testng.Assert;
import org.testng.IInvokedMethod;
import org.testng.IInvokedMethodListener;
import org.testng.ISuite;
import org.testng.ISuiteListener;
import org.testng.ITestResult;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import test.listeners.SuiteAndInvokedMethodListenerTest.MyListener;
/**
* Make sure that if a listener implements both IInvokedMethodListener
* and ISuiteListener, both listeners get invoked.
*
* @author Cedric Beust <cedric@beust.com>
*/
@Listeners(MyListener.class)
public class SuiteAndInvokedMethodListenerTest {
public static class MyListener implements IInvokedMethodListener, ISuiteListener {
private static boolean m_before = false;
private static boolean m_start = false;
public MyListener() {
}
@Override
public void beforeInvocation(IInvokedMethod method, ITestResult result) {
m_before = true;
}
@Override
public void afterInvocation(IInvokedMethod method, ITestResult result) {
}
@Override
public void onStart(ISuite suite) {
m_start = true;
}
@Override
public void onFinish(ISuite suite) {
}
}
@Test
public void bothListenersShouldRun() {
Assert.assertTrue(MyListener.m_before, "IInvokedMethodListener was not invoked");
Assert.assertTrue(MyListener.m_start, "ISuiteListener was not invoked");
}
}