CppUnit project page FAQ

TestSuiteBuilderContext.h
Go to the documentation of this file.
1 #ifndef CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
2 #define CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
3 
4 #include <cppunit/Portability.h>
5 #include <map>
6 #include <string>
7 
8 #if CPPUNIT_NEED_DLL_DECL
9 #pragma warning( push )
10 #pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
11 #endif
12 
13 
15 
16 class TestSuite;
17 class TestFixture;
18 class TestFixtureFactory;
19 class TestNamer;
20 
30 {
31 public:
38  const TestNamer &namer,
39  TestFixtureFactory &factory );
40 
41  virtual ~TestSuiteBuilderContextBase();
42 
47 
52  void addTest( Test *test );
53 
58  std::string getFixtureName() const;
59 
68  std::string getTestNameFor( const std::string &testMethodName ) const;
69 
79  template<typename T>
80  std::string getTestNameFor( const std::string &testMethodName, const T& value ) const
81  {
82  return m_namer.getTestNameFor(testMethodName, value);
83  }
84 
89  void addProperty( const std::string &key,
90  const std::string &value );
91 
95  const std::string getStringProperty( const std::string &key ) const;
96 
97 protected:
98  TestFixture *makeTestFixture() const;
99 
100  // Notes: we use a vector here instead of a map to work-around the
101  // shared std::map in dll bug in VC6.
102  // See http://www.dinkumware.com/vc_fixes.html for detail.
103  typedef std::pair<std::string,std::string> Property;
104  typedef std::vector<Property> Properties;
105 
109 
110 private:
112 };
113 
114 
119 template<class Fixture>
121 {
122 public:
123  typedef Fixture FixtureType;
124 
126  : TestSuiteBuilderContextBase( contextBase )
127  {
128  }
129 
137  {
138  return CPPUNIT_STATIC_CAST( FixtureType *,
140  }
141 };
142 
143 
145 
146 #if CPPUNIT_NEED_DLL_DECL
147 #pragma warning( pop )
148 #endif
149 
150 #endif // CPPUNIT_HELPER_TESTSUITEBUILDERCONTEXT_H
151 
#define CPPUNIT_API
Definition: CppUnitApi.h:27
#define CPPUNIT_NS_END
Definition: Portability.h:106
#define CPPUNIT_STATIC_CAST(TargetType, pointer)
Definition: Portability.h:87
#define CPPUNIT_NS_BEGIN
Definition: Portability.h:105
Abstract TestFixture factory (Implementation).
Definition: TestFixtureFactory.h:17
Wraps a test case with setUp and tearDown methods.
Definition: TestFixture.h:84
Base class for all test objects.
Definition: Test.h:26
Names a test or a fixture suite.
Definition: TestNamer.h:39
Context used when creating test suite in HelperMacros.
Definition: TestSuiteBuilderContext.h:30
TestSuite & m_suite
Definition: TestSuiteBuilderContext.h:106
std::pair< std::string, std::string > Property
Definition: TestSuiteBuilderContext.h:103
TestSuiteBuilderContextBase(TestSuiteBuilderContextBase const &)=default
std::string getTestNameFor(const std::string &testMethodName, const T &value) const
Returns the name of the test for the specified method with the corresponding parameter.
Definition: TestSuiteBuilderContext.h:80
TestFixture * makeTestFixture() const
Definition: TestSuiteBuilderContext.cpp:49
std::vector< Property > Properties
Definition: TestSuiteBuilderContext.h:104
const TestNamer & m_namer
Definition: TestSuiteBuilderContext.h:107
Properties m_properties
Definition: TestSuiteBuilderContext.h:111
TestFixtureFactory & m_factory
Definition: TestSuiteBuilderContext.h:108
TestSuiteBuilderContextBase(TestSuiteBuilderContextBase &&)=default
Type-sage context used when creating test suite in HelperMacros.
Definition: TestSuiteBuilderContext.h:121
FixtureType * makeFixture() const
Returns a new TestFixture instance.
Definition: TestSuiteBuilderContext.h:136
TestSuiteBuilderContext(TestSuiteBuilderContextBase &contextBase)
Definition: TestSuiteBuilderContext.h:125
Fixture FixtureType
Definition: TestSuiteBuilderContext.h:123
A Composite of Tests.
Definition: TestSuite.h:41

Send comments to:
CppUnit Developers