1 #ifndef CPPUNIT_EXTENSIONS_TESTDECORATOR_H 2 #define CPPUNIT_EXTENSIONS_TESTDECORATOR_H 3 4 #include <cppunit/Portability.h> 5 #include <cppunit/Test.h> 6 7 CPPUNIT_NS_BEGIN 8 9 10 class TestResult; 11 12 13 /*! \brief Decorator for Tests. 14 * 15 * TestDecorator provides an alternate means to extend functionality 16 * of a test class without subclassing the test. Instead, one can 17 * subclass the decorater and use it to wrap the test class. 18 * 19 * Assumes ownership of the test it decorates 20 */ 21 class CPPUNIT_API TestDecorator : public Test 22 { 23 public: 24 TestDecorator( Test *test ); 25 ~TestDecorator(); 26 27 int countTestCases() const; 28 29 std::string getName() const; 30 31 void run( TestResult *result ); 32 33 int getChildTestCount() const; 34 35 protected: 36 Test *doGetChildTestAt( int index ) const; 37 38 Test *m_test; 39 40 private: 41 TestDecorator( const TestDecorator &); 42 void operator =( const TestDecorator & ); 43 }; 44 45 46 CPPUNIT_NS_END 47 48 #endif 49 50