00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef MOCKPP_CXXTESTRUNNER_H
00031 #define MOCKPP_CXXTESTRUNNER_H
00032
00033 #include <mockpp/mockpp.h>
00034
00035 #if defined(MOCKPP_USE_CXXTEST)
00036
00037 #include <mockpp/compat/Exception.h>
00038
00039 #include <cxxtest/TestRunner.h>
00040
00041
00042 MOCKPP_NS_START
00043
00044
00048 class CxxTestRunner : public CXXTEST_NS::TestRunner
00049 {
00050 public:
00051
00055 static void runAllTests( CXXTEST_NS::TestListener &listener )
00056 {
00057 CXXTEST_NS::tracker().setListener( &listener );
00058
00059 _TS_TRY { CxxTestRunner().runWorld(); }
00060
00061 _TS_CATCH_TYPE( (MOCKPP_NS::Exception &ex),
00062 {CXXTEST_NS::tracker().failedTest( MOCKPP_NS::getLatin1(ex.getSrcFile()).c_str(), ex.getSrcLine(), MOCKPP_NS::getLatin1(ex.getMessage()).c_str() ); } )
00063
00064 _TS_CATCH_TYPE( (CXXTEST_STD_NS::exception &ex),
00065 {CXXTEST_NS::tracker().failedTest( __FILE__, __LINE__, ex.what() ); } )
00066
00067 _TS_LAST_CATCH( { CXXTEST_NS::tracker().failedTest( __FILE__, __LINE__, "Exception thrown from world" ); } );
00068
00069 CXXTEST_NS::tracker().setListener( 0 );
00070 }
00071 };
00072
00073
00074 MOCKPP_NS_END
00075
00076
00077 #endif // MOCKPP_USE_CXXTEST
00078
00079
00080 #endif // MOCKPP_CXXTESTRUNNER_H