1 package test.mannotation; 2 3 import org.testng.Assert; 4 import org.testng.annotations.Configuration; 5 import org.testng.annotations.IConfigurationAnnotation; 6 import org.testng.annotations.ITestAnnotation; 7 import org.testng.annotations.Test; 8 import org.testng.internal.IConfiguration; 9 import org.testng.internal.annotations.IAnnotationFinder; 10 11 import java.lang.reflect.Method; 12 13 public class MAnnotation2SampleTest { 14 private IConfiguration m_configuration = new org.testng.internal.Configuration(); 15 private IAnnotationFinder m_finder; 16 17 @Configuration(beforeTestClass = true, enabled = true, groups="current") init()18 public void init() { 19 m_finder = m_configuration.getAnnotationFinder(); 20 } 21 22 @Test verifyTestGroupsInheritance()23 public void verifyTestGroupsInheritance() 24 throws SecurityException, NoSuchMethodException 25 { 26 { 27 Method method = MTest3.class.getMethod("groups1", new Class[0]); 28 ITestAnnotation test1 = (ITestAnnotation) m_finder.findAnnotation(method, ITestAnnotation.class); 29 Assert.assertEqualsNoOrder(new String[] { "method-test3", "child-class-test3", "base-class" }, 30 test1.getGroups()); 31 } 32 33 { 34 Method method = MTest3.class.getMethod("groups2", new Class[0]); 35 ITestAnnotation test1 = (ITestAnnotation) m_finder.findAnnotation(method, ITestAnnotation.class); 36 Assert.assertEqualsNoOrder(new String[] { "child-class-test3", "base-class" }, 37 test1.getGroups()); 38 } 39 } 40 41 @Test verifyTestDependsOnGroupsInheritance()42 public void verifyTestDependsOnGroupsInheritance() 43 throws SecurityException, NoSuchMethodException 44 { 45 { 46 Method method = MTest3.class.getMethod("dependsOnGroups1", new Class[0]); 47 ITestAnnotation test1 = (ITestAnnotation) m_finder.findAnnotation(method, ITestAnnotation.class); 48 Assert.assertEqualsNoOrder(new String[] { "dog2", "dog1", "dog3" }, 49 test1.getDependsOnGroups()); 50 } 51 52 { 53 Method method = MTest3.class.getMethod("dependsOnGroups2", new Class[0]); 54 ITestAnnotation test1 = (ITestAnnotation) m_finder.findAnnotation(method, ITestAnnotation.class); 55 Assert.assertEqualsNoOrder(new String[] { "dog1", "dog3" }, 56 test1.getDependsOnGroups()); 57 } 58 59 } 60 61 @Test verifyTestDependsOnMethodsInheritance()62 public void verifyTestDependsOnMethodsInheritance() 63 throws SecurityException, NoSuchMethodException 64 { 65 { 66 Method method = MTest3.class.getMethod("dependsOnMethods1", new Class[0]); 67 ITestAnnotation test1 = (ITestAnnotation) m_finder.findAnnotation(method, ITestAnnotation.class); 68 Assert.assertEqualsNoOrder(new String[] { "dom2", "dom3", "dom1" }, 69 test1.getDependsOnMethods()); 70 } 71 72 { 73 Method method = MTest3.class.getMethod("dependsOnMethods2", new Class[0]); 74 ITestAnnotation test1 = (ITestAnnotation) m_finder.findAnnotation(method, ITestAnnotation.class); 75 Assert.assertEqualsNoOrder(new String[] { "dom1", "dom3" }, 76 test1.getDependsOnMethods()); 77 } 78 79 } 80 81 82 @Test verifyConfigurationGroupsInheritance()83 public void verifyConfigurationGroupsInheritance() 84 throws SecurityException, NoSuchMethodException 85 { 86 Method method = MTest3.class.getMethod("beforeSuite", new Class[0]); 87 IConfigurationAnnotation test1 = (IConfigurationAnnotation) m_finder.findAnnotation(method, IConfigurationAnnotation.class); 88 Assert.assertEqualsNoOrder(new String[] { "method-test3", "child-class-test3", "base-class" }, 89 test1.getGroups()); 90 } 91 92 @Test(groups="current") verifyTestEnabledInheritance()93 public void verifyTestEnabledInheritance() 94 throws SecurityException, NoSuchMethodException 95 { 96 { 97 Method method = MTest3.class.getMethod("enabled1", new Class[0]); 98 ITestAnnotation test1 = (ITestAnnotation) m_finder.findAnnotation(method, ITestAnnotation.class); 99 Assert.assertFalse(test1.getEnabled()); 100 } 101 102 { 103 Method method = MTest3.class.getMethod("enabled2", new Class[0]); 104 ITestAnnotation test1 = (ITestAnnotation) m_finder.findAnnotation(method, ITestAnnotation.class); 105 Assert.assertTrue(test1.getEnabled()); 106 } 107 108 } 109 110 // @Test(groups = "current") 111 // public void verifyCapture() 112 // throws SecurityException, NoSuchMethodException 113 // { 114 // { 115 // Method method = MChildCaptureTest.class.getMethod("shouldBelongToGroupChild", new Class[0]); 116 // ITest test1 = (ITest) m_finder.findAnnotation(method, ITest.class); 117 // Assert.assertEqualsNoOrder(new String[] { "child" }, 118 // test1.getGroups()); 119 // } 120 // } 121 122 123 } 124