1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
#ifndef CPPUNIT_EXTENSIONS_TESTDECORATOR_H
#define CPPUNIT_EXTENSIONS_TESTDECORATOR_H
#include <cppunit/Portability.h>
#include <cppunit/Test.h>
namespace CppUnit {
class TestResult;
/*! \brief Decorator for Tests.
*
* TestDecorator provides an alternate means to extend functionality
* of a test class without subclassing the test. Instead, one can
* subclass the decorater and use it to wrap the test class.
*
* Does not assume ownership of the test it decorates
*/
class CPPUNIT_API TestDecorator : public Test
{
public:
TestDecorator (Test *test);
~TestDecorator ();
void run (TestResult *result);
int countTestCases () const;
std::string getName () const;
std::string toString () const;
protected:
Test *m_test;
private:
TestDecorator( const TestDecorator &);
void operator =( const TestDecorator & );
};
inline TestDecorator::TestDecorator (Test *test)
{ m_test = test; }
inline TestDecorator::~TestDecorator ()
{}
inline int TestDecorator::countTestCases () const
{ return m_test->countTestCases (); }
inline void TestDecorator::run (TestResult *result)
{ m_test->run (result); }
inline std::string TestDecorator::toString () const
{ return m_test->toString (); }
inline std::string TestDecorator::getName () const
{ return m_test->getName(); }
} // namespace CppUnit
#endif