• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.testng.junit;
2 
3 import java.util.List;
4 import org.testng.ITestClass;
5 import org.testng.ITestNGMethod;
6 import org.testng.collections.Lists;
7 import org.testng.xml.XmlClass;
8 import org.testng.xml.XmlTest;
9 
10 /**
11  *
12  * @author lukas
13  */
14 //NO JUnit specific code here to avoid runtime errors
15 public abstract class JUnitTestClass implements ITestClass {
16 
17     private static final long serialVersionUID = 405598615794850925L;
18     private List<ITestNGMethod> m_testMethods = Lists.newArrayList();
19     private List<ITestNGMethod> m_beforeClass = Lists.newArrayList();
20     private List<ITestNGMethod> m_afterClass = Lists.newArrayList();
21     private List<ITestNGMethod> m_beforeTest = Lists.newArrayList();
22     private List<ITestNGMethod> m_afterTest = Lists.newArrayList();
23     private Class m_realClass;
24     private Object[] m_instances;
25     private long[] m_instanceHashes;
26 
JUnitTestClass(Class test)27     public JUnitTestClass(Class test) {
28         m_realClass = test;
29         m_instances = new Object[]{test};
30         m_instanceHashes = new long[]{test.hashCode()};
31     }
32 
getTestMethodList()33     List<ITestNGMethod> getTestMethodList() {
34       return m_testMethods;
35     }
36 
37     /**
38      * @see org.testng.IClass#addInstance(java.lang.Object)
39      */
40     @Override
addInstance(Object instance)41     public void addInstance(Object instance) {
42         throw new IllegalStateException("addInstance is not supported for JUnit");
43     }
44 
45     /**
46      * @see org.testng.IClass#getName()
47      */
48     @Override
getName()49     public String getName() {
50         return m_realClass.getName();
51     }
52 
53     /**
54      * @see org.testng.IClass#getRealClass()
55      */
56     @Override
getRealClass()57     public Class getRealClass() {
58         return m_realClass;
59     }
60 
61     @Override
getTestName()62     public String getTestName() {
63         return null;
64     }
65 
66     @Override
getXmlTest()67     public XmlTest getXmlTest() {
68         return null;
69     }
70 
71     @Override
getXmlClass()72     public XmlClass getXmlClass() {
73         return null;
74     }
75 
76     /**
77      * @see org.testng.ITestClass#getInstanceCount()
78      */
79     @Override
getInstanceCount()80     public int getInstanceCount() {
81         return 1;
82     }
83 
84     /**
85      * @see org.testng.ITestClass#getInstanceHashCodes()
86      */
87     @Override
getInstanceHashCodes()88     public long[] getInstanceHashCodes() {
89         return m_instanceHashes;
90     }
91 
92     /**
93      * @see org.testng.ITestClass#getInstances(boolean)
94      */
95     @Override
getInstances(boolean reuse)96     public Object[] getInstances(boolean reuse) {
97         return m_instances;
98     }
99 
100     /**
101      * @see org.testng.ITestClass#getTestMethods()
102      */
103     @Override
getTestMethods()104     public ITestNGMethod[] getTestMethods() {
105         return m_testMethods.toArray(new ITestNGMethod[m_testMethods.size()]);
106     }
107 
108     /**
109      * @see org.testng.ITestClass#getBeforeTestMethods()
110      */
111     @Override
getBeforeTestMethods()112     public ITestNGMethod[] getBeforeTestMethods() {
113         return m_beforeTest.toArray(new ITestNGMethod[m_beforeTest.size()]);
114     }
115 
116     /**
117      * @see org.testng.ITestClass#getAfterTestMethods()
118      */
119     @Override
getAfterTestMethods()120     public ITestNGMethod[] getAfterTestMethods() {
121         return m_afterTest.toArray(new ITestNGMethod[m_afterTest.size()]);
122     }
123 
124     /**
125      * @see org.testng.ITestClass#getBeforeClassMethods()
126      */
127     @Override
getBeforeClassMethods()128     public ITestNGMethod[] getBeforeClassMethods() {
129         return m_beforeClass.toArray(new ITestNGMethod[m_beforeClass.size()]);
130     }
131 
132     /**
133      * @see org.testng.ITestClass#getAfterClassMethods()
134      */
135     @Override
getAfterClassMethods()136     public ITestNGMethod[] getAfterClassMethods() {
137         return m_afterClass.toArray(new ITestNGMethod[m_afterClass.size()]);
138     }
139 
140     //features not supported by JUnit
141     private static final ITestNGMethod[] EMPTY_METHODARRAY = new ITestNGMethod[0];
142 
143     /**
144      * @see org.testng.ITestClass#getBeforeSuiteMethods()
145      */
146     @Override
getBeforeSuiteMethods()147     public ITestNGMethod[] getBeforeSuiteMethods() {
148         return EMPTY_METHODARRAY;
149     }
150 
151     /**
152      * @see org.testng.ITestClass#getAfterSuiteMethods()
153      */
154     @Override
getAfterSuiteMethods()155     public ITestNGMethod[] getAfterSuiteMethods() {
156         return EMPTY_METHODARRAY;
157     }
158 
159     /**
160      * @see org.testng.ITestClass#getBeforeGroupsMethods()
161      */
162     @Override
getBeforeGroupsMethods()163     public ITestNGMethod[] getBeforeGroupsMethods() {
164         return EMPTY_METHODARRAY;
165     }
166 
167     /**
168      * @see org.testng.ITestClass#getAfterGroupsMethods()
169      */
170     @Override
getAfterGroupsMethods()171     public ITestNGMethod[] getAfterGroupsMethods() {
172         return EMPTY_METHODARRAY;
173     }
174 
175     //already deprecated stuff, not usable in junit
176     /**
177      * @see org.testng.ITestClass#getBeforeTestConfigurationMethods()
178      */
179     @Override
getBeforeTestConfigurationMethods()180     public ITestNGMethod[] getBeforeTestConfigurationMethods() {
181         return EMPTY_METHODARRAY;
182     }
183 
184     /**
185      * @see org.testng.ITestClass#getAfterTestConfigurationMethods()
186      */
187     @Override
getAfterTestConfigurationMethods()188     public ITestNGMethod[] getAfterTestConfigurationMethods() {
189         return EMPTY_METHODARRAY;
190     }
191 }
192