CppUnit project page | FAQ | CppUnit home page |
00001 #ifndef CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H 00002 #define CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H 00003 00004 #include <cppunit/Portability.h> 00005 #include <cppunit/portability/CppUnitMap.h> 00006 #include <string> 00007 00008 #if CPPUNIT_NEED_DLL_DECL 00009 #pragma warning( push ) 00010 #pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z 00011 #endif 00012 00013 CPPUNIT_NS_BEGIN 00014 00015 class TestSuite; 00016 class TestFixture; 00017 class TestFixtureFactory; 00018 class TestNamer; 00019 00028 class CPPUNIT_API TestSuiteBuilderContextBase 00029 { 00030 public: 00036 TestSuiteBuilderContextBase( TestSuite &suite, 00037 const TestNamer &namer, 00038 TestFixtureFactory &factory ); 00039 00044 void addTest( Test *test ); 00045 00050 std::string getFixtureName() const; 00051 00060 std::string getTestNameFor( const std::string &testMethodName ) const; 00061 00066 void addProperty( const std::string &key, 00067 const std::string &value ); 00068 00072 const std::string getStringProperty( const std::string &key ) const; 00073 00074 protected: 00075 TestFixture *makeTestFixture() const; 00076 00077 typedef CppUnitMap<std::string,std::string> Properties; 00078 00079 TestSuite &m_suite; 00080 const TestNamer &m_namer; 00081 TestFixtureFactory &m_factory; 00082 Properties m_properties; 00083 }; 00084 00085 00090 template<class Fixture> 00091 class TestSuiteBuilderContext : public TestSuiteBuilderContextBase 00092 { 00093 public: 00094 typedef Fixture FixtureType; 00095 00096 TestSuiteBuilderContext( TestSuiteBuilderContextBase &contextBase ) 00097 : TestSuiteBuilderContextBase( contextBase ) 00098 { 00099 } 00100 00107 FixtureType *makeFixture() const 00108 { 00109 return CPPUNIT_STATIC_CAST( FixtureType *, 00110 TestSuiteBuilderContextBase::makeTestFixture() ); 00111 } 00112 }; 00113 00114 00115 CPPUNIT_NS_END 00116 00117 #if CPPUNIT_NEED_DLL_DECL 00118 #pragma warning( pop ) 00119 #endif 00120 00121 #endif // CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H 00122
hosts this site. |
Send comments to: CppUnit Developers |