#include <cxxtest/TestSuite.h>

#ifdef _WIN32
#   include <windows.h>
#   define CXXTEST_SAMPLE_GUI_WAIT() Sleep( 1000 )
#else // !_WIN32
    extern "C" unsigned sleep( unsigned seconds );
#   define CXXTEST_SAMPLE_GUI_WAIT() sleep( 1 )
#endif // _WIN32

class GreenYellowRed : public CxxTest::TestSuite
{
public:
    void wait()
    {
        CXXTEST_SAMPLE_GUI_WAIT();
    }

    void test_Start_green()
    {
        wait();
    }

    void test_Green_again()
    {
        TS_TRACE( "Still green" );
        wait();
    }

    void test_Now_yellow()
    {
        TS_WARN( "Yellow" );
        wait();
    }

    void test_Cannot_go_back()
    {
        wait();
    }

    void test_Finally_red()
    {
        TS_FAIL( "Red" );
        wait();
    }

    void test_Cannot_go_back_to_yellow()
    {
        TS_WARN( "Yellow?" );
        wait();
    }

    void test_Cannot_go_back_to_green()
    {
        wait();
    }
};