16337249b87d2de0e14797f03e87fb9c981294308Cédric Beustpackage test.thread; 26337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 36337249b87d2de0e14797f03e87fb9c981294308Cédric Beustimport org.testng.annotations.AfterClass; 46337249b87d2de0e14797f03e87fb9c981294308Cédric Beustimport org.testng.annotations.AfterMethod; 56337249b87d2de0e14797f03e87fb9c981294308Cédric Beustimport org.testng.annotations.BeforeClass; 66337249b87d2de0e14797f03e87fb9c981294308Cédric Beustimport org.testng.annotations.BeforeMethod; 76337249b87d2de0e14797f03e87fb9c981294308Cédric Beustimport org.testng.annotations.Test; 86337249b87d2de0e14797f03e87fb9c981294308Cédric Beustimport org.testng.collections.Lists; 96337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 106337249b87d2de0e14797f03e87fb9c981294308Cédric Beustimport java.util.List; 116337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 126337249b87d2de0e14797f03e87fb9c981294308Cédric Beustpublic class MultiThreadedDependentSampleTest { 136337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public static List<String> m_methods = Lists.newArrayList(); 146337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 156337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @BeforeClass 166337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void bc() { 176337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// log("beforeClass"); 186337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 196337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 206337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @AfterClass 216337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void ac() { 226337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// log("afterClass"); 236337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 246337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 256337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @BeforeMethod 266337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void bm() { 276337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// log("beforeMethod"); 286337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 296337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 306337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @AfterMethod 316337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void am() { 326337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// log("afterMethod"); 336337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 346337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 356337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test(groups = "1") 366337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void a1() { 376337249b87d2de0e14797f03e87fb9c981294308Cédric Beust logThread(); 386337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("a1"); 396337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 406337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 416337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test(groups = "1") 426337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void a2() { 436337249b87d2de0e14797f03e87fb9c981294308Cédric Beust logThread(); 446337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("a2"); 456337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 466337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 4781b9582101c1c347601618e6f0e63d3fda270022Cédric Beust @Test(groups = "1") 4881b9582101c1c347601618e6f0e63d3fda270022Cédric Beust public void a3() { 4981b9582101c1c347601618e6f0e63d3fda270022Cédric Beust logThread(); 5081b9582101c1c347601618e6f0e63d3fda270022Cédric Beust log("a3"); 5181b9582101c1c347601618e6f0e63d3fda270022Cédric Beust } 5281b9582101c1c347601618e6f0e63d3fda270022Cédric Beust 536337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test(groups = "2", dependsOnGroups = "1") 546337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void b1() { 556337249b87d2de0e14797f03e87fb9c981294308Cédric Beust logThread(); 566337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("b1"); 576337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 586337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 596337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test(groups = "2", dependsOnGroups = "1") 606337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void b2() { 616337249b87d2de0e14797f03e87fb9c981294308Cédric Beust logThread(); 626337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("b2"); 636337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 646337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 656337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test(groups = "2", dependsOnGroups = "1") 666337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void b3() { 676337249b87d2de0e14797f03e87fb9c981294308Cédric Beust logThread(); 686337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("b3"); 696337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 706337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 716337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test(groups = "2", dependsOnGroups = "1") 726337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void b4() { 736337249b87d2de0e14797f03e87fb9c981294308Cédric Beust logThread(); 746337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("b4"); 756337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 76892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin 7781b9582101c1c347601618e6f0e63d3fda270022Cédric Beust @Test(groups = "2", dependsOnGroups = "1") 7881b9582101c1c347601618e6f0e63d3fda270022Cédric Beust public void b5() { 7981b9582101c1c347601618e6f0e63d3fda270022Cédric Beust logThread(); 8081b9582101c1c347601618e6f0e63d3fda270022Cédric Beust log("b5"); 8181b9582101c1c347601618e6f0e63d3fda270022Cédric Beust } 826337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 836337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test(dependsOnGroups = "2") 846337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void c1() { 856337249b87d2de0e14797f03e87fb9c981294308Cédric Beust logThread(); 866337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("c1"); 876337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 886337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 896337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test(dependsOnGroups = { "1" }) 906337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void d() { 916337249b87d2de0e14797f03e87fb9c981294308Cédric Beust logThread(); 926337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("d"); 936337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 946337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 956337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test 966337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void x() { 976337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("x"); 986337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 996337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 1006337249b87d2de0e14797f03e87fb9c981294308Cédric Beust @Test 1016337249b87d2de0e14797f03e87fb9c981294308Cédric Beust public void y() { 1026337249b87d2de0e14797f03e87fb9c981294308Cédric Beust log("y"); 1036337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 104f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust 105f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust @Test 106f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust public void z() { 107f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust log("z"); 108f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust } 109f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust 110f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust @Test 111f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust public void t() { 112f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust log("t"); 113f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust } 114f4bff96ccba4529912e8f66458338e94505859c1Cédric Beust 1156337249b87d2de0e14797f03e87fb9c981294308Cédric Beust // @Test(groups = "mytest", dependsOnMethods = "g") 1166337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// public void f() { 1176337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// } 1186337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// 1196337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// 1206337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// @AfterMethod 1216337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// public void after() { 1226337249b87d2de0e14797f03e87fb9c981294308Cédric Beust// } 1236337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 1246337249b87d2de0e14797f03e87fb9c981294308Cédric Beust private void logThread() { 1256337249b87d2de0e14797f03e87fb9c981294308Cédric Beust long id = Thread.currentThread().getId(); 1266337249b87d2de0e14797f03e87fb9c981294308Cédric Beust Helper.getMap(getClass().getName()).put(id, id); 1276337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 1286337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 1296337249b87d2de0e14797f03e87fb9c981294308Cédric Beust private void log(String string) { 1306337249b87d2de0e14797f03e87fb9c981294308Cédric Beust synchronized(m_methods) { 1316337249b87d2de0e14797f03e87fb9c981294308Cédric Beust m_methods.add(string); 1326337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 1336337249b87d2de0e14797f03e87fb9c981294308Cédric Beust } 1346337249b87d2de0e14797f03e87fb9c981294308Cédric Beust 1356337249b87d2de0e14797f03e87fb9c981294308Cédric Beust} 136