1package test.thread;
2
3import org.testng.annotations.AfterClass;
4import org.testng.annotations.AfterMethod;
5import org.testng.annotations.BeforeClass;
6import org.testng.annotations.BeforeMethod;
7import org.testng.annotations.Test;
8import org.testng.collections.Lists;
9
10import java.util.List;
11
12public class MultiThreadedDependentSampleTest {
13  public static List<String> m_methods = Lists.newArrayList();
14
15  @BeforeClass
16  public void bc() {
17//    log("beforeClass");
18  }
19
20  @AfterClass
21  public void ac() {
22//    log("afterClass");
23  }
24
25  @BeforeMethod
26  public void bm() {
27//    log("beforeMethod");
28  }
29
30  @AfterMethod
31  public void am() {
32//    log("afterMethod");
33  }
34
35  @Test(groups = "1")
36  public void a1() {
37    logThread();
38    log("a1");
39  }
40
41  @Test(groups = "1")
42  public void a2() {
43    logThread();
44    log("a2");
45  }
46
47  @Test(groups = "1")
48  public void a3() {
49    logThread();
50    log("a3");
51  }
52
53  @Test(groups = "2", dependsOnGroups = "1")
54  public void b1() {
55    logThread();
56    log("b1");
57  }
58
59  @Test(groups = "2", dependsOnGroups = "1")
60  public void b2() {
61    logThread();
62    log("b2");
63  }
64
65  @Test(groups = "2", dependsOnGroups = "1")
66  public void b3() {
67    logThread();
68    log("b3");
69  }
70
71  @Test(groups = "2", dependsOnGroups = "1")
72  public void b4() {
73    logThread();
74    log("b4");
75  }
76
77  @Test(groups = "2", dependsOnGroups = "1")
78  public void b5() {
79    logThread();
80    log("b5");
81  }
82
83  @Test(dependsOnGroups = "2")
84  public void c1() {
85    logThread();
86    log("c1");
87  }
88
89  @Test(dependsOnGroups = { "1" })
90  public void d() {
91    logThread();
92    log("d");
93  }
94
95  @Test
96  public void x() {
97    log("x");
98  }
99
100  @Test
101  public void y() {
102    log("y");
103  }
104
105  @Test
106  public void z() {
107    log("z");
108  }
109
110  @Test
111  public void t() {
112    log("t");
113  }
114
115  //  @Test(groups = "mytest", dependsOnMethods = "g")
116//  public void f() {
117//  }
118//
119//
120//  @AfterMethod
121//  public void after() {
122//  }
123
124  private void logThread() {
125    long id = Thread.currentThread().getId();
126    Helper.getMap(getClass().getName()).put(id, id);
127  }
128
129  private void log(String string) {
130    synchronized(m_methods) {
131      m_methods.add(string);
132    }
133  }
134
135}
136