1 package test.groupinvocation; 2 3 import org.testng.Assert; 4 import org.testng.annotations.AfterClass; 5 import org.testng.annotations.Test; 6 7 import java.util.HashMap; 8 import java.util.Map; 9 10 11 /** 12 * This class/interface 13 */ 14 public class DummyTest { 15 private static Map<String, Integer> s_externalClassGroups= new HashMap<>(); 16 17 @Test(groups={"a"}) testA()18 public void testA() { 19 } 20 21 @Test(groups={"b"}) testB()22 public void testB() { 23 } 24 25 @Test(groups={"a", "b"}) testAB()26 public void testAB() { 27 } 28 29 @AfterClass(alwaysRun=true) checkInvocations()30 public void checkInvocations() { 31 Integer hashCode1= s_externalClassGroups.get("beforeGroups"); 32 Assert.assertNotNull(hashCode1, "External @BeforeGroups not invoked"); 33 Integer hashCode2= s_externalClassGroups.get("afterGroups"); 34 Assert.assertNotNull(hashCode2, "External @AfterGroups not invoked"); 35 Assert.assertEquals(hashCode1, hashCode2, "External @BeforeGroups and @AfterGroups were not invoked on the" + 36 " same class instance"); 37 } 38 39 /** 40 * @param string 41 * @param i 42 */ recordInvocation(String string, int i)43 public static void recordInvocation(String string, int i) { 44 s_externalClassGroups.put(string, i); 45 } 46 } 47