package org.apache.testlet.sample;

import java.lang.reflect.Method;
import java.util.List;
import java.util.ArrayList;
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.TimeBombTestCase;
import org.apache.testlet.AbstractTestlet;

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

    public void testFailed()
    {
        System.out.println( "testFailed" );
        fail( "Just Failed " );
    }

    public void testSleep()
    {
        try
        {
            Thread.sleep( 100 );
        }
        catch ( final InterruptedException ignore ) {}
    }

    public TestSuite getTestSuite()
    {
        DefaultTestSuite testSuite = null;

        try
        {
            testSuite = new DefaultTestSuite( m_name );

            testSuite.addTestCase( createTestCase( "Succeed" ) );
            testSuite.addTestCase( createTestCase( "Failed" ) );
            testSuite.addTestCase( new RepeatTestCase( "RepeatSucceed", createTestCase( "Succeed" ), 10 ) );
            testSuite.addTestCase( new TimeBombTestCase( "ExceedSleep", createTestCase( "Sleep" ), 10 ) );
            testSuite.addTestCase( new TimeBombTestCase( "NotExceedSleep", createTestCase( "Sleep" ), 200 ) );
        }
        catch( final Throwable t )
        {
            //log( ... );
            t.printStackTrace();
            testSuite = null;
        }

        return testSuite;
    }
}
