1336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustpackage test.configuration;
2336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
3336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport static org.testng.Assert.assertFalse;
4336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport static org.testng.Assert.assertTrue;
5336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
6336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.annotations.AfterClass;
7336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.annotations.AfterMethod;
8336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.annotations.AfterSuite;
9336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.annotations.BeforeClass;
10336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.annotations.BeforeMethod;
11336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.annotations.Test;
12336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
13336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustpublic class MethodCallOrderTest {
14336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public static boolean s_beforeSuite;
15336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public static boolean s_beforeTest;
16336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public static boolean s_beforeClass;
17336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public static boolean s_beforeMethod;
18336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
19336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  @BeforeClass
20336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public void beforeClass() {
21336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeSuite);
22336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeTest);
23336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertFalse(s_beforeClass);
24336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertFalse(s_beforeMethod);
25892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
26336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    s_beforeClass = true;
27336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
28892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
29336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  @AfterSuite
30336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public void cleanUp() {
31336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    s_beforeSuite = false;
32336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    s_beforeTest = false;
33336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    s_beforeClass = false;
34336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    s_beforeMethod = false;
35336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
36336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
37892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
38336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  @BeforeMethod
39336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public void beforeMethod() {
40336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeSuite);
41336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeTest);
42336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeClass);
43336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertFalse(s_beforeMethod);
44336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    s_beforeMethod = true;
45336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
46892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
47336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  @Test
48336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public void realTest() {
49336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeSuite);
50336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeTest);
51336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeClass);
52336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(s_beforeMethod);
53336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
54892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
55336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  @AfterMethod
56336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public void afterMethod() {
57336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertFalse(ExternalConfigurationClass.s_afterMethod, "afterTestMethod shouldn't have been run");
58336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertFalse(ExternalConfigurationClass.s_afterClass, "afterTestClass shouldn't have been run");
59336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertFalse(ExternalConfigurationClass.s_afterTest, "afterTest should haven't been run");
60336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
61336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    ExternalConfigurationClass.s_afterMethod = true;
62336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
63892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin
64336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  @AfterClass
65336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  public void afterClass() {
66336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertTrue(ExternalConfigurationClass.s_afterMethod, "afterTestMethod should have been run");
67336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertFalse(ExternalConfigurationClass.s_afterClass, "afterTestClass shouldn't have been run");
68336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    assertFalse(ExternalConfigurationClass.s_afterTest, "afterTest should haven't been run");
69336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    ExternalConfigurationClass.s_afterClass = true;
70336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
71336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust}
72