1da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beustpackage test.inject;
2da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust
3da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beustimport org.testng.ITestResult;
4da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beustimport org.testng.SkipException;
5da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beustimport org.testng.annotations.AfterMethod;
6da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beustimport org.testng.annotations.BeforeClass;
7f19a60d9e003e04bffe39a8ef4f15d54e67894b3Cédric Beustimport org.testng.annotations.BeforeMethod;
8da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beustimport org.testng.annotations.Test;
9da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust
10da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beustimport java.lang.reflect.Method;
11da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust
12da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beustpublic class InjectAfterMethodWithTestResultSampleTest {
13da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  static int m_success;
14da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust
15da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  @Test
16da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  public void pass() {}
17892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
18da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  @Test
19da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  public void fail() {
20da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust    throw new RuntimeException();
21da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  }
22892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
23da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  @Test
24da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  public void skip() {
25da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust    throw new SkipException("Skipped");
26da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  }
27892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
28da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  @BeforeClass
29da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  public void init() {
30da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust    m_success = 3;
31da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  }
32f19a60d9e003e04bffe39a8ef4f15d54e67894b3Cédric Beust
33f19a60d9e003e04bffe39a8ef4f15d54e67894b3Cédric Beust  @BeforeMethod
34f19a60d9e003e04bffe39a8ef4f15d54e67894b3Cédric Beust  public void before(Method m, ITestResult r) {
35f19a60d9e003e04bffe39a8ef4f15d54e67894b3Cédric Beust    System.out.println("Before result: " + r);
36f19a60d9e003e04bffe39a8ef4f15d54e67894b3Cédric Beust  }
37f19a60d9e003e04bffe39a8ef4f15d54e67894b3Cédric Beust
38da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  @AfterMethod
39da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  public void after(Method m, ITestResult r) {
40da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust    String name = m.getName();
41da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust    if (("pass".equals(name) && r.getStatus() == ITestResult.SUCCESS)
42da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust        || ("fail".equals(name) && r.getStatus() == ITestResult.FAILURE)
43da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust        || ("skip".equals(name) && r.getStatus() == ITestResult.SKIP)) {
44da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust          m_success--;
45da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust        }
46da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust  }
47da4f4527ccc23d7a7d777627332b6c7332266a16Cédric Beust}
48