Home | History | Annotate | Download | only in listeners
      1 package test.listeners;
      2 
      3 import org.testng.Assert;
      4 import org.testng.IInvokedMethod;
      5 import org.testng.IInvokedMethodListener;
      6 import org.testng.ISuite;
      7 import org.testng.ISuiteListener;
      8 import org.testng.ITestResult;
      9 import org.testng.annotations.Listeners;
     10 import org.testng.annotations.Test;
     11 
     12 import test.listeners.SuiteAndInvokedMethodListenerTest.MyListener;
     13 
     14 /**
     15  * Make sure that if a listener implements both IInvokedMethodListener
     16  * and ISuiteListener, both listeners get invoked.
     17  *
     18  * @author Cedric Beust <cedric (at) beust.com>
     19  */
     20 @Listeners(MyListener.class)
     21 public class SuiteAndInvokedMethodListenerTest {
     22   public static class MyListener implements IInvokedMethodListener, ISuiteListener {
     23 
     24     private static boolean m_before = false;
     25     private static boolean m_start = false;
     26 
     27     public MyListener() {
     28     }
     29 
     30     @Override
     31     public void beforeInvocation(IInvokedMethod method, ITestResult result) {
     32       m_before = true;
     33     }
     34 
     35     @Override
     36     public void afterInvocation(IInvokedMethod method, ITestResult result) {
     37     }
     38 
     39     @Override
     40     public void onStart(ISuite suite) {
     41       m_start = true;
     42     }
     43 
     44     @Override
     45     public void onFinish(ISuite suite) {
     46     }
     47 
     48   }
     49 
     50   @Test
     51   public void bothListenersShouldRun() {
     52     Assert.assertTrue(MyListener.m_before, "IInvokedMethodListener was not invoked");
     53     Assert.assertTrue(MyListener.m_start, "ISuiteListener was not invoked");
     54   }
     55 
     56 }
     57