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 27 public JUnitTestClass(Class test) { 28 m_realClass = test; 29 m_instances = new Object[]{test}; 30 m_instanceHashes = new long[]{test.hashCode()}; 31 } 32 33 List<ITestNGMethod> getTestMethodList() { 34 return m_testMethods; 35 } 36 37 /** 38 * @see org.testng.IClass#addInstance(java.lang.Object) 39 */ 40 @Override 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 49 public String getName() { 50 return m_realClass.getName(); 51 } 52 53 /** 54 * @see org.testng.IClass#getRealClass() 55 */ 56 @Override 57 public Class getRealClass() { 58 return m_realClass; 59 } 60 61 @Override 62 public String getTestName() { 63 return null; 64 } 65 66 @Override 67 public XmlTest getXmlTest() { 68 return null; 69 } 70 71 @Override 72 public XmlClass getXmlClass() { 73 return null; 74 } 75 76 /** 77 * @see org.testng.ITestClass#getInstanceCount() 78 */ 79 @Override 80 public int getInstanceCount() { 81 return 1; 82 } 83 84 /** 85 * @see org.testng.ITestClass#getInstanceHashCodes() 86 */ 87 @Override 88 public long[] getInstanceHashCodes() { 89 return m_instanceHashes; 90 } 91 92 /** 93 * @see org.testng.ITestClass#getInstances(boolean) 94 */ 95 @Override 96 public Object[] getInstances(boolean reuse) { 97 return m_instances; 98 } 99 100 /** 101 * @see org.testng.ITestClass#getTestMethods() 102 */ 103 @Override 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 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 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 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 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 147 public ITestNGMethod[] getBeforeSuiteMethods() { 148 return EMPTY_METHODARRAY; 149 } 150 151 /** 152 * @see org.testng.ITestClass#getAfterSuiteMethods() 153 */ 154 @Override 155 public ITestNGMethod[] getAfterSuiteMethods() { 156 return EMPTY_METHODARRAY; 157 } 158 159 /** 160 * @see org.testng.ITestClass#getBeforeGroupsMethods() 161 */ 162 @Override 163 public ITestNGMethod[] getBeforeGroupsMethods() { 164 return EMPTY_METHODARRAY; 165 } 166 167 /** 168 * @see org.testng.ITestClass#getAfterGroupsMethods() 169 */ 170 @Override 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 180 public ITestNGMethod[] getBeforeTestConfigurationMethods() { 181 return EMPTY_METHODARRAY; 182 } 183 184 /** 185 * @see org.testng.ITestClass#getAfterTestConfigurationMethods() 186 */ 187 @Override 188 public ITestNGMethod[] getAfterTestConfigurationMethods() { 189 return EMPTY_METHODARRAY; 190 } 191 } 192