CppUnit project page FAQ CppUnit home page

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TestFactoryRegistry.h

Go to the documentation of this file.
00001 #ifndef CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H
00002 #define CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H
00003 
00004 #include <cppunit/Portability.h>
00005 
00006 #if CPPUNIT_NEED_DLL_DECL
00007 #pragma warning( push )
00008 #pragma warning( disable: 4251)  // X needs to have dll-interface to be used by clients of class Z
00009 #endif
00010 
00011 #include <cppunit/portability/CppUnitSet.h>
00012 #include <cppunit/extensions/TestFactory.h>
00013 #include <string>
00014 
00015 CPPUNIT_NS_BEGIN
00016 
00017 
00018 class TestSuite;
00019 
00020 #if CPPUNIT_NEED_DLL_DECL
00021 //  template class CPPUNIT_API std::set<TestFactory *>;
00022 #endif
00023 
00024 
00080 class CPPUNIT_API TestFactoryRegistry : public TestFactory
00081 {
00082 public:
00087   TestFactoryRegistry( std::string name );
00088 
00090   virtual ~TestFactoryRegistry();
00091 
00096   virtual Test *makeTest();
00097 
00107   static TestFactoryRegistry &getRegistry( const std::string &name = "All Tests" );
00108 
00112   void addTestToSuite( TestSuite *suite );
00113 
00118   void registerFactory( TestFactory *factory );
00119 
00126   void unregisterFactory( TestFactory *factory );
00127 
00138   void addRegistry( const std::string &name );
00139 
00153   static bool isValid();
00154 
00160   void registerFactory( const std::string &name,
00161                         TestFactory *factory );
00162 
00163 private:
00164   TestFactoryRegistry( const TestFactoryRegistry &copy );
00165   void operator =( const TestFactoryRegistry &copy );
00166 
00167 private:
00168   typedef CppUnitSet<TestFactory *, std::less<TestFactory*> > Factories;
00169   Factories m_factories;
00170 
00171   std::string m_name;
00172 };
00173 
00174 
00175 CPPUNIT_NS_END
00176 
00177 #if CPPUNIT_NEED_DLL_DECL
00178 #pragma warning( pop )
00179 #endif
00180 
00181 
00182 #endif  // CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H

SourceForge Logo hosts this site. Send comments to:
CppUnit Developers