Imported Upstream version 2.81
[platform/upstream/libbullet.git] / UnitTests / cppunit / include / cppunit / extensions / TestDecorator.h
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  * Does not assume 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