Home | History | Annotate | Download | only in junit
      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