41 class ObjectRepeaterRoot :
public ObjectRepeaterOnce {
44 const Context& context_,
45 const std::string& decorated_name_,
49 ObjectRepeaterRoot() =
default;
50 virtual ~ObjectRepeaterRoot() =
default;
54 const ObjectRepeaterRoot&) =
delete;
55 ObjectRepeaterRoot& operator = (
56 const ObjectRepeaterRoot&) =
delete;
60 const Context& context_,
61 const std::string& decorated_name_,
63 return std::make_shared<TestRoot>(decorated_name_);
68 struct ScenarioRoot::Impl {
70 typedef std::vector<ScenarioPtr> Children;
75 const Impl&) =
delete;
77 const Impl&) =
delete;
80 const std::string& name_);
84 ScenarioRoot::Impl::Impl(
85 const std::string& name_) :
88 assert(!name.empty());
92 ScenarioRoot::Impl::~Impl() {
97 const std::string& name_) :
98 pimpl(new Impl(name_)) {
107 const std::string& name_) {
108 assert(!name_.empty());
117 for(
auto item_ : pimpl->children) {
118 item_->filterScenario(tags_, root_, filter_);
125 const Context& context_)
const {
126 return {pimpl->name, std::make_shared<ObjectRepeaterRoot>()};
130 const Context& context_)
const noexcept {
131 context_.reporter->enterTest(
133 context_.object_path->getCurrentName(),
134 context_.object_path->getCurrentParameters());
138 const Context& context_)
const noexcept {
139 context_.reporter->leaveTest(
141 context_.object_path->getCurrentName(),
142 context_.object_path->getCurrentParameters(),
143 context_.semantic_stack->top());
147 return std::make_shared<ScenarioIterContainer>(pimpl->children);
152 assert(scenario_ !=
nullptr);
153 pimpl->children.push_back(scenario_);
157 return pimpl->children.empty();