org.testng.junit.JUnitTestClass Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of testng Show documentation
Show all versions of testng Show documentation
A testing framework for the JVM
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;
//NO JUnit specific code here to avoid runtime errors
public abstract class JUnitTestClass implements ITestClass {
private List m_testMethods = Lists.newArrayList();
private List m_beforeClass = Lists.newArrayList();
private List m_afterClass = Lists.newArrayList();
private List m_beforeTest = Lists.newArrayList();
private List m_afterTest = Lists.newArrayList();
private final Class m_realClass;
private final Object[] m_instances;
private final long[] m_instanceHashes;
public JUnitTestClass(Class test) {
m_realClass = test;
m_instances = new Object[]{test};
m_instanceHashes = new long[]{test.hashCode()};
}
List 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;
}
@Deprecated
@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;
}
}