1package test.configuration;
2
3import org.testng.annotations.AfterGroups;
4import org.testng.annotations.BeforeGroups;
5import org.testng.annotations.DataProvider;
6import org.testng.annotations.Test;
7
8import java.util.ArrayList;
9import java.util.Collections;
10import java.util.List;
11
12public class ConfigurationGroupBothSampleTest {
13  static List<Integer> m_list = Collections.synchronizedList(new ArrayList<Integer>());
14
15  private synchronized static void addToList(Integer n) {
16    m_list.add(n);
17  }
18
19  @BeforeGroups(groups={"twice"}, value={"twice"})
20  public void a(){
21    ppp("BEFORE()");
22    addToList(1);
23  }
24
25  @Test(groups={"twice"}, dataProvider="MyData", invocationCount = 2, threadPoolSize=2)
26  public void b(int a, int b) {
27    addToList(2);
28    ppp("B()"  + a + "," + b);
29  }
30
31  @AfterGroups(groups={"twice"}, value={"twice"})
32  public void c(){
33    addToList(3);
34    ppp("AFTER()");
35  }
36
37  @DataProvider(name="MyData")
38  public Object[][] input(){
39    return new Object[][]{ {1,1}, {2,2}, {3,3}};
40  }
41
42  private void ppp(String string) {
43    if (false) {
44      System.out.println("[A] " + string + " on Thread:" + Thread.currentThread());
45    }
46  }
47
48
49}
50