OTest2
A C++ testing framework
|
Go to the documentation of this file.
20 #ifndef OTest2_INCLUDE_OTEST2_REPEATERMULTI_H_
21 #define OTest2_INCLUDE_OTEST2_REPEATERMULTI_H_
27 #include <otest2/caseptr.h>
28 #include <otest2/caserepeater.h>
29 #include <otest2/suiteptr.h>
30 #include <otest2/suiterepeater.h>
36 template<
typename Suite_,
typename Repeater_>
40 std::shared_ptr<Repeater_> repeater_object;
58 const Context& context_)
const override {
60 if(repeater_object ==
nullptr)
63 return repeater_object->hasNextRun(context_);
68 const std::string& suite_name_)
const override {
69 std::ostringstream oss_;
70 oss_ << suite_name_ <<
" (" << index <<
")";
76 const std::string& case_name_)
override {
78 return makePointer<Suite_>(context_, std::ref(repeater_object));
82 template<
typename Suite_,
typename Case_,
typename Repeater_>
87 std::shared_ptr<Repeater_>&);
91 std::shared_ptr<Repeater_> repeater_object;
108 factory_method(factory_method_) {
109 assert(suite !=
nullptr && factory_method !=
nullptr);
117 const Context& context_)
const override {
119 if(repeater_object ==
nullptr)
122 return repeater_object->hasNextRun(context_);
127 const std::string& case_name_)
const override {
128 std::ostringstream oss_;
129 oss_ << case_name_ <<
" (" << index <<
")";
135 const std::string& case_name_)
override {
137 return (suite->*factory_method)(context_, repeater_object);
virtual SuitePtr createSuite(const Context &context_, const std::string &case_name_) override
virtual ~SuiteRepeaterMulti()=default
CaseRepeaterMulti & operator=(const CaseRepeaterMulti &)=delete
virtual ~CaseRepeaterMulti()=default
virtual bool isNextRun(const Context &context_) const override
virtual CasePtr createCase(const Context &context_, const std::string &case_name_) override
CaseRepeaterMulti(Suite_ *suite_, FactoryMethod factory_method_)
virtual bool isNextRun(const Context &context_) const override
virtual std::string transformName(const Context &context_, const std::string &case_name_) const override
SuiteRepeaterMulti & operator=(const SuiteRepeaterMulti &)=delete
virtual std::string transformName(const Context &context_, const std::string &suite_name_) const override
CasePtr(Suite_::* FactoryMethod)(const Context &, std::shared_ptr< Repeater_ > &)
CaseRepeaterMulti(const CaseRepeaterMulti &)=delete