blob: 25b4d138950670cc24fd548b459a5231290de752 [file] [log] [blame]
package org.testng.junit;
import java.util.List;
import org.testng.ITestClass;
import org.testng.ITestNGMethod;
import org.testng.collections.Lists;
import org.testng.xml.XmlClass;
import org.testng.xml.XmlTest;
/**
*
* @author lukas
*/
//NO JUnit specific code here to avoid runtime errors
public abstract class JUnitTestClass implements ITestClass {
private static final long serialVersionUID = 405598615794850925L;
private List<ITestNGMethod> m_testMethods = Lists.newArrayList();
private List<ITestNGMethod> m_beforeClass = Lists.newArrayList();
private List<ITestNGMethod> m_afterClass = Lists.newArrayList();
private List<ITestNGMethod> m_beforeTest = Lists.newArrayList();
private List<ITestNGMethod> m_afterTest = Lists.newArrayList();
private Class m_realClass;
private Object[] m_instances;
private long[] m_instanceHashes;
public JUnitTestClass(Class test) {
m_realClass = test;
m_instances = new Object[]{test};
m_instanceHashes = new long[]{test.hashCode()};
}
List<ITestNGMethod> getTestMethodList() {
return m_testMethods;
}
/**
* @see org.testng.IClass#addInstance(java.lang.Object)
*/
@Override
public void addInstance(Object instance) {
throw new IllegalStateException("addInstance is not supported for JUnit");
}
/**
* @see org.testng.IClass#getName()
*/
@Override
public String getName() {
return m_realClass.getName();
}
/**
* @see org.testng.IClass#getRealClass()
*/
@Override
public Class getRealClass() {
return m_realClass;
}
@Override
public String getTestName() {
return null;
}
@Override
public XmlTest getXmlTest() {
return null;
}
@Override
public XmlClass getXmlClass() {
return null;
}
/**
* @see org.testng.ITestClass#getInstanceCount()
*/
@Override
public int getInstanceCount() {
return 1;
}
/**
* @see org.testng.ITestClass#getInstanceHashCodes()
*/
@Override
public long[] getInstanceHashCodes() {
return m_instanceHashes;
}
/**
* @see org.testng.ITestClass#getInstances(boolean)
*/
@Override
public Object[] getInstances(boolean reuse) {
return m_instances;
}
/**
* @see org.testng.ITestClass#getTestMethods()
*/
@Override
public ITestNGMethod[] getTestMethods() {
return m_testMethods.toArray(new ITestNGMethod[m_testMethods.size()]);
}
/**
* @see org.testng.ITestClass#getBeforeTestMethods()
*/
@Override
public ITestNGMethod[] getBeforeTestMethods() {
return m_beforeTest.toArray(new ITestNGMethod[m_beforeTest.size()]);
}
/**
* @see org.testng.ITestClass#getAfterTestMethods()
*/
@Override
public ITestNGMethod[] getAfterTestMethods() {
return m_afterTest.toArray(new ITestNGMethod[m_afterTest.size()]);
}
/**
* @see org.testng.ITestClass#getBeforeClassMethods()
*/
@Override
public ITestNGMethod[] getBeforeClassMethods() {
return m_beforeClass.toArray(new ITestNGMethod[m_beforeClass.size()]);
}
/**
* @see org.testng.ITestClass#getAfterClassMethods()
*/
@Override
public ITestNGMethod[] getAfterClassMethods() {
return m_afterClass.toArray(new ITestNGMethod[m_afterClass.size()]);
}
//features not supported by JUnit
private static final ITestNGMethod[] EMPTY_METHODARRAY = new ITestNGMethod[0];
/**
* @see org.testng.ITestClass#getBeforeSuiteMethods()
*/
@Override
public ITestNGMethod[] getBeforeSuiteMethods() {
return EMPTY_METHODARRAY;
}
/**
* @see org.testng.ITestClass#getAfterSuiteMethods()
*/
@Override
public ITestNGMethod[] getAfterSuiteMethods() {
return EMPTY_METHODARRAY;
}
/**
* @see org.testng.ITestClass#getBeforeGroupsMethods()
*/
@Override
public ITestNGMethod[] getBeforeGroupsMethods() {
return EMPTY_METHODARRAY;
}
/**
* @see org.testng.ITestClass#getAfterGroupsMethods()
*/
@Override
public ITestNGMethod[] getAfterGroupsMethods() {
return EMPTY_METHODARRAY;
}
//already deprecated stuff, not usable in junit
/**
* @see org.testng.ITestClass#getBeforeTestConfigurationMethods()
*/
@Override
public ITestNGMethod[] getBeforeTestConfigurationMethods() {
return EMPTY_METHODARRAY;
}
/**
* @see org.testng.ITestClass#getAfterTestConfigurationMethods()
*/
@Override
public ITestNGMethod[] getAfterTestConfigurationMethods() {
return EMPTY_METHODARRAY;
}
}