diff options
Diffstat (limited to 'include/cppunit/extensions/TestFixtureFactory.h')
| -rw-r--r-- | include/cppunit/extensions/TestFixtureFactory.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/cppunit/extensions/TestFixtureFactory.h b/include/cppunit/extensions/TestFixtureFactory.h new file mode 100644 index 0000000..17a0b4a --- /dev/null +++ b/include/cppunit/extensions/TestFixtureFactory.h @@ -0,0 +1,47 @@ +#ifndef CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H +#define CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H + +#include <cppunit/Portability.h> + + +CPPUNIT_NS_BEGIN + + +class TestFixture; + +/*! \brief Abstract TestFixture factory (Implementation). + * + * Implementation detail. Use by HelperMacros to handle TestFixture hierarchy. + */ +class TestFixtureFactory +{ +public: + //! Creates a new TestFixture instance. + virtual TestFixture *makeFixture() =0; +}; + + +/*! \brief Concret TestFixture factory (Implementation). + * + * Implementation detail. Use by HelperMacros to handle TestFixture hierarchy. + */ +template<class TestFixtureType> +class ConcretTestFixtureFactory : public CPPUNIT_NS::TestFixtureFactory +{ + /*! \brief Returns a new TestFixture instance. + * \return A new fixture instance. The fixture instance is returned by + * the TestFixtureFactory passed on construction. The actual type + * is that of the fixture on which the static method suite() + * was called. + */ + TestFixture *makeFixture() + { + return new TestFixtureType(); + } +}; + + +CPPUNIT_NS_END + + +#endif // CPPUNIT_EXTENSIONS_TESTFIXTUREFACTORY_H
\ No newline at end of file |
