package org.apache.testlet.sample;

import java.lang.reflect.Method;
import org.apache.testlet.TestSuite;
import org.apache.testlet.TestCase;
import org.apache.testlet.DefaultTestSuite;
import org.apache.testlet.DefaultTestCase;
import org.apache.testlet.RepeatTestCase;
import org.apache.testlet.AbstractTestlet;

public class SampleRepeatTestlet
    extends AbstractTestlet
{
    public void testSomething()
    {
        System.out.println( "Hello World" );
    }

    public TestSuite getTestSuite()
    {
        DefaultTestSuite testSuite = null;

        try
        {
            testSuite = new DefaultTestSuite( m_name );

            final Method methods[] = getClass().getMethods();

            for( int i = 0; i < methods.length; i++ )
            {
                final Class paramTypes[] = methods[i].getParameterTypes();

                if( null != paramTypes && paramTypes.length != 0 ) continue;

                final String methodName = methods[i].getName();

                if( !methodName.startsWith("test") ) continue;

                final TestCase testCase = 
                    new RepeatTestCase( new DefaultTestCase( methodName.substring(4), methods[i], this ), 10 );

                testSuite.addTestCase( testCase );
            }
        }
        catch( final Throwable t )
        {
            //log( ... );
            t.printStackTrace();
            testSuite = null;
        }

        return testSuite;
    }
}

