• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package test.hook;
2 
3 import org.testng.Assert;
4 import org.testng.annotations.BeforeMethod;
5 import org.testng.annotations.Test;
6 
7 import test.BaseTest;
8 
9 /**
10  * Because IHookable and IConfigurable are global, it's safer to run them in a
11  * sub-TestNG object, otherwise they will be run for your entire test suite...
12  *
13  * @author cbeust
14  */
15 public class HookableTest extends BaseTest {
16 
17   @BeforeMethod
bm()18   public void bm() {
19     HookSuccessTest.m_hook = false;
20     HookSuccessTest.m_testWasRun = false;
21     HookSuccessTest.m_parameter = null;
22     HookSuccess599Test.m_hook = false;
23     HookSuccess599Test.m_testWasRun = false;
24     HookSuccess599Test.m_parameter = null;
25     HookFailureTest.m_hook = false;
26     HookFailureTest.m_testWasRun = false;
27     HookListener.m_hook = false;
28     BaseConfigurable.m_hookCount = 0;
29     BaseConfigurable.m_bc = false;
30     BaseConfigurable.m_bm = false;
31     BaseConfigurable.m_bs = false;
32     BaseConfigurable.m_bt = false;
33     BaseConfigurable.m_methodName = null;
34     ConfigurableListener.m_hookCount = 0;
35     ConfigurableListener.m_methodName = null;
36     ConfigurableSuccessWithListenerTest.m_bc = false;
37     ConfigurableSuccessWithListenerTest.m_bm = false;
38   }
39 
40   @Test
hookSuccess()41   public void hookSuccess() {
42     addClass(HookSuccessTest.class);
43     run();
44 
45     verifyTests("Passed", new String[] { "verify" }, getPassedTests());
46     Assert.assertTrue(HookSuccessTest.m_hook);
47     Assert.assertTrue(HookSuccessTest.m_testWasRun);
48     Assert.assertEquals(HookSuccessTest.m_parameter, "foo");
49   }
50 
51   @Test(description = "https://github.com/cbeust/testng/issues/599")
issue599()52   public void issue599() {
53     addClass(HookSuccess599Test.class);
54     run();
55 
56     verifyTests("Passed", new String[] { "verify" }, getPassedTests());
57     Assert.assertTrue(HookSuccess599Test.m_hook);
58     Assert.assertTrue(HookSuccess599Test.m_testWasRun);
59     Assert.assertEquals(HookSuccess599Test.m_parameter, "foo");
60   }
61 
62   @Test(description = "https://github.com/cbeust/testng/pull/862")
issue862()63   public void issue862() {
64     addClass(HookSuccess862Test.class);
65     run();
66 
67     verifyTests("Passed", new String[] { "verify" }, getPassedTests());
68   }
69 
70   @Test
hookSuccessWithListener()71   public void hookSuccessWithListener() {
72     addClass(HookSuccessWithListenerTest.class);
73     run();
74 
75     verifyTests("Passed", new String[] { "verify" }, getPassedTests());
76     Assert.assertTrue(HookListener.m_hook);
77   }
78 
79   @Test
hookFailure()80   public void hookFailure() {
81     addClass(HookFailureTest.class);
82     run();
83 
84     // To investigate: TestNG still thinks the test passed since it can't know whether
85     // the hook ended up invoking the test or not.
86 //    verifyTests("Passed", new String[] { }, getPassedTests());
87     Assert.assertTrue(HookFailureTest.m_hook);
88     Assert.assertFalse(HookFailureTest.m_testWasRun);
89   }
90 
91   @Test
configurableSuccess()92   public void configurableSuccess() {
93     addClass(ConfigurableSuccessTest.class);
94     run();
95 
96     Assert.assertEquals(BaseConfigurable.m_hookCount, 4);
97     Assert.assertTrue(BaseConfigurable.m_bc);
98     Assert.assertTrue(BaseConfigurable.m_bm);
99     Assert.assertTrue(BaseConfigurable.m_bs);
100     Assert.assertTrue(BaseConfigurable.m_bt);
101     Assert.assertEquals(BaseConfigurable.m_methodName, "hookWasRun");
102   }
103 
104   @Test
configurableSuccessWithListener()105   public void configurableSuccessWithListener() {
106     addClass(ConfigurableSuccessWithListenerTest.class);
107     run();
108 
109     Assert.assertEquals(ConfigurableListener.m_hookCount, 4);
110     Assert.assertTrue(ConfigurableSuccessWithListenerTest.m_bs);
111     Assert.assertTrue(ConfigurableSuccessWithListenerTest.m_bt);
112     Assert.assertTrue(ConfigurableSuccessWithListenerTest.m_bc);
113     Assert.assertTrue(ConfigurableSuccessWithListenerTest.m_bm);
114     Assert.assertEquals(ConfigurableListener.m_methodName, "hookWasRun");
115   }
116 
117   @Test
configurableFailure()118   public void configurableFailure() {
119     addClass(ConfigurableFailureTest.class);
120     run();
121 
122     Assert.assertEquals(BaseConfigurable.m_hookCount, 4);
123     Assert.assertFalse(BaseConfigurable.m_bc);
124     Assert.assertFalse(BaseConfigurable.m_bm);
125     Assert.assertFalse(BaseConfigurable.m_bs);
126     Assert.assertFalse(BaseConfigurable.m_bt);
127   }
128 
129 }
130