00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef __WXTEST_H__
00013 #define __WXTEST_H__
00014
00015 #include <wxTest/preprocessor.h>
00016
00017 WXTEST_BEGIN_NAMESPACE
00018
00019 class wxITestRunner;
00020
00029 class wxITest
00030 {
00031 public:
00032
00036 virtual void Delete() = 0;
00037
00043 virtual const char* GetDescription() = 0;
00044
00053 enum TestState { unknown, running, pass, fail };
00054
00060 virtual TestState GetState() = 0;
00061
00067 virtual void SetState( TestState newState ) = 0;
00068
00074 virtual void Run( wxITestRunner* pResult ) = 0;
00075
00082 virtual void Run( wxITestRunner* pResult, long unsigned nThreadId ) = 0;
00083
00089 virtual bool IsThreadSafe() = 0;
00090
00095 virtual int GetNumSubTests() = 0;
00096
00102 virtual void GetSubTests( wxITest ** pOutTests ) = 0;
00103
00109 virtual const wxITest* GetParent() const = 0;
00110 virtual wxITest* GetParent() = 0;
00111
00117 virtual void SetParent( wxITest* pParent ) = 0;
00118 };
00119
00120
00129 class wxTestAssertion
00130 {
00131 public:
00141 wxTestAssertion( const char* pszMessage, const char* file, long unsigned lineNo ) :
00142 m_pszFile( file ), m_nLineNo( lineNo )
00143 {
00144 const char* pSrc = pszMessage;
00145 char* pDst = m_szMessage;
00146 while ( *pSrc )
00147 *pDst++ = *pSrc++;
00148 *pDst = 0;
00149 }
00150
00151 char m_szMessage[1024];
00152 const char* m_pszFile;
00153 long unsigned m_nLineNo;
00154 };
00155
00162 #define WXTASSERT( BOOLEXPR ) if ( !( BOOLEXPR ) ) throw wxTestAssertion( "", __FILE__, __LINE__ );
00163
00169 #define WXTASSERTMSG( MSG, BOOLEXPR ) if ( !( BOOLEXPR ) ) throw wxTestAssertion( MSG, __FILE__, __LINE__ );
00170
00175 WXTEST_END_NAMESPACE
00176
00177 #endif //__WXTEST_H__