From 3d7c446d57869ca8fffc2116894c12b70cd7b6b4 Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Tue, 29 Mar 2022 00:26:21 +0200 Subject: [PATCH] Enabled subclass filter to generate class inheritance diagram --- .../plantuml/class_diagram_generator.cc | 28 +++++++---- src/class_diagram/model/diagram.cc | 14 +++--- .../visitor/translation_unit_context.cc | 3 +- .../visitor/translation_unit_visitor.cc | 13 +++--- src/common/generators/plantuml/generator.h | 17 ++++--- src/common/model/diagram.cc | 16 +++++-- src/common/model/diagram.h | 4 ++ src/common/model/diagram_filter.cc | 6 ++- src/common/model/diagram_filter.h | 46 +++++++++++++------ src/config/config.cc | 3 +- src/config/config.h | 1 - src/main.cc | 6 +-- .../visitor/translation_unit_visitor.cc | 18 ++++---- tests/t00002/test_case.h | 8 ++-- tests/t00003/test_case.h | 6 +-- tests/t00004/test_case.h | 12 ++--- tests/t00005/test_case.h | 12 ++--- tests/t00006/test_case.h | 14 +++--- tests/t00007/test_case.h | 4 +- tests/t00008/test_case.h | 4 +- tests/t00009/test_case.h | 4 +- tests/t00010/test_case.h | 4 +- tests/t00011/test_case.h | 4 +- tests/t00012/test_case.h | 4 +- tests/t00013/test_case.h | 11 ++--- tests/t00014/test_case.h | 7 ++- tests/t00015/test_case.h | 7 ++- tests/t00016/test_case.h | 7 ++- tests/t00017/test_case.h | 4 +- tests/t00018/test_case.h | 7 ++- tests/t00019/test_case.h | 4 +- tests/t00020/test_case.h | 7 ++- tests/t00021/test_case.h | 6 +-- tests/t00022/test_case.h | 7 ++- tests/t00023/test_case.h | 7 ++- tests/t00024/test_case.h | 7 ++- tests/t00025/test_case.h | 7 ++- tests/t00026/test_case.h | 7 ++- tests/t00027/test_case.h | 7 ++- tests/t00028/test_case.h | 7 ++- tests/t00029/test_case.h | 7 ++- tests/t00030/test_case.h | 7 ++- tests/t00031/test_case.h | 7 ++- tests/t00032/test_case.h | 7 ++- tests/t00033/test_case.h | 6 +-- tests/t00034/test_case.h | 6 +-- tests/t00035/test_case.h | 6 +-- tests/t00036/test_case.h | 4 +- tests/t00037/test_case.h | 4 +- tests/t00038/test_case.h | 4 +- tests/t00039/test_case.h | 4 +- tests/t20001/test_case.h | 10 ++-- tests/t20002/test_case.h | 4 +- tests/t30001/test_case.h | 10 ++-- tests/t30002/test_case.h | 4 +- tests/t30003/test_case.h | 4 +- tests/t30004/test_case.h | 4 +- tests/t30005/test_case.h | 4 +- tests/t30006/test_case.h | 4 +- tests/t30007/test_case.h | 4 +- tests/t90000/test_case.h | 4 +- tests/test_cases.cc | 10 ++-- 62 files changed, 253 insertions(+), 231 deletions(-) diff --git a/src/class_diagram/generators/plantuml/class_diagram_generator.cc b/src/class_diagram/generators/plantuml/class_diagram_generator.cc index 2a964218..d2a501aa 100644 --- a/src/class_diagram/generators/plantuml/class_diagram_generator.cc +++ b/src/class_diagram/generators/plantuml/class_diagram_generator.cc @@ -355,14 +355,18 @@ void generator::generate(const package &p, std::ostream &ostr, generate(sp, ostr, relationships_ostr); } else if (dynamic_cast(subpackage.get())) { - generate_alias(dynamic_cast(*subpackage), ostr); - generate( - dynamic_cast(*subpackage), ostr, relationships_ostr); + if (m_model.should_include(*subpackage)) { + generate_alias(dynamic_cast(*subpackage), ostr); + generate(dynamic_cast(*subpackage), ostr, + relationships_ostr); + } } else if (dynamic_cast(subpackage.get())) { - generate_alias(dynamic_cast(*subpackage), ostr); - generate( - dynamic_cast(*subpackage), ostr, relationships_ostr); + if (m_model.should_include(*subpackage)) { + generate_alias(dynamic_cast(*subpackage), ostr); + generate(dynamic_cast(*subpackage), ostr, + relationships_ostr); + } } } @@ -392,12 +396,16 @@ void generator::generate(std::ostream &ostr) const generate(sp, ostr, relationships_ostr); } else if (dynamic_cast(p.get())) { - generate_alias(dynamic_cast(*p), ostr); - generate(dynamic_cast(*p), ostr, relationships_ostr); + if (m_model.should_include(*p)) { + generate_alias(dynamic_cast(*p), ostr); + generate(dynamic_cast(*p), ostr, relationships_ostr); + } } else if (dynamic_cast(p.get())) { - generate_alias(dynamic_cast(*p), ostr); - generate(dynamic_cast(*p), ostr, relationships_ostr); + if (m_model.should_include(*p)) { + generate_alias(dynamic_cast(*p), ostr); + generate(dynamic_cast(*p), ostr, relationships_ostr); + } } ostr << '\n'; } diff --git a/src/class_diagram/model/diagram.cc b/src/class_diagram/model/diagram.cc index ea992712..5d251664 100644 --- a/src/class_diagram/model/diagram.cc +++ b/src/class_diagram/model/diagram.cc @@ -124,14 +124,12 @@ void diagram::get_parents( { bool found_new = false; for (const auto &parent : parents) { - for (const auto &rel : parent.get().relationships()) { - if (rel.type() == common::model::relationship_t::kExtension) { - const auto p = get_class(rel.destination()); - if (p.has_value()) { - auto [it, found] = parents.emplace(p.value()); - if (found) - found_new = true; - } + for (const auto &pp : parent.get().parents()) { + const auto p = get_class(pp.name()); + if (p.has_value()) { + auto [it, found] = parents.emplace(p.value()); + if (found) + found_new = true; } } } diff --git a/src/class_diagram/visitor/translation_unit_context.cc b/src/class_diagram/visitor/translation_unit_context.cc index 476e710a..83655608 100644 --- a/src/class_diagram/visitor/translation_unit_context.cc +++ b/src/class_diagram/visitor/translation_unit_context.cc @@ -184,7 +184,8 @@ clanguml::class_diagram::model::diagram &translation_unit_context::diagram() return diagram_; } -clanguml::class_diagram::model::diagram &translation_unit_context::diagram() const +clanguml::class_diagram::model::diagram & +translation_unit_context::diagram() const { return diagram_; } diff --git a/src/class_diagram/visitor/translation_unit_visitor.cc b/src/class_diagram/visitor/translation_unit_visitor.cc index bbf67617..37636246 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.cc +++ b/src/class_diagram/visitor/translation_unit_visitor.cc @@ -241,13 +241,13 @@ void translation_unit_visitor::process_namespace( auto usn = ctx.config().using_namespace(); - if (ctx.diagram().should_include(package_path)) { - auto p = std::make_unique(usn); - package_path = package_path.relative_to(usn); + auto p = std::make_unique(usn); + package_path = package_path.relative_to(usn); - p->set_name(e.name()); - p->set_namespace(package_parent); + p->set_name(e.name()); + p->set_namespace(package_parent); + if (ctx.diagram().should_include(*p)) { if (e.comment().has_value()) p->set_comment(e.comment().value()); @@ -580,7 +580,8 @@ void translation_unit_visitor::process_class_bases( cx::util::ns(base.type(), ctx.entity_index())}; base_ns = base_ns | common::model::namespace_{base.name()}.name(); cp.set_name( - base_ns.relative_to(ctx.config().using_namespace()).to_string()); + // base_ns.relative_to(ctx.config().using_namespace()).to_string()); + base_ns.to_string()); cp.is_virtual(base.is_virtual()); switch (base.access_specifier()) { diff --git a/src/common/generators/plantuml/generator.h b/src/common/generators/plantuml/generator.h index f91a5788..1ff63d06 100644 --- a/src/common/generators/plantuml/generator.h +++ b/src/common/generators/plantuml/generator.h @@ -225,14 +225,15 @@ void generator::generate_link( template -DiagramModel generate(const cppast::libclang_compilation_database &db, - const std::string &name, DiagramConfig &config, bool verbose = false) +std::unique_ptr generate( + const cppast::libclang_compilation_database &db, const std::string &name, + DiagramConfig &config, bool verbose = false) { LOG_INFO("Generating diagram {}.puml", name); - DiagramModel diagram{}; - diagram.set_name(name); - diagram.set_filter( - std::make_unique(diagram, config)); + auto diagram = std::make_unique(); + diagram->set_name(name); + diagram->set_filter( + std::make_unique(*diagram, config)); // Get all translation units matching the glob from diagram // configuration @@ -251,11 +252,13 @@ DiagramModel generate(const cppast::libclang_compilation_database &db, type_safe::ref(idx), std::move(logger)}; // Process all matching translation units - DiagramVisitor ctx(idx, diagram, config); + DiagramVisitor ctx(idx, *diagram, config); cppast::parse_files(parser, translation_units, db); for (auto &file : parser.files()) ctx(file); + diagram->set_complete(true); + return std::move(diagram); } diff --git a/src/common/model/diagram.cc b/src/common/model/diagram.cc index 97309561..98e84f9d 100644 --- a/src/common/model/diagram.cc +++ b/src/common/model/diagram.cc @@ -40,28 +40,36 @@ void diagram::set_filter(std::unique_ptr filter) filter_ = std::move(filter); } -bool diagram::should_include(const element &e) const { +void diagram::set_complete(bool complete) { complete_ = complete; } + +bool diagram::complete() const { return complete_; } + +bool diagram::should_include(const element &e) const +{ if (filter_.get() == nullptr) return true; return filter_->should_include(e); } -bool diagram::should_include(const std::string &name) const { +bool diagram::should_include(const std::string &name) const +{ if (filter_.get() == nullptr) return true; return filter_->should_include(name); } -bool diagram::should_include(const relationship_t r) const { +bool diagram::should_include(const relationship_t r) const +{ if (filter_.get() == nullptr) return true; return filter_->should_include(r); } -bool diagram::should_include(const scope_t s) const { +bool diagram::should_include(const scope_t s) const +{ if (filter_.get() == nullptr) return true; diff --git a/src/common/model/diagram.h b/src/common/model/diagram.h index f6e3dcb0..eeefee27 100644 --- a/src/common/model/diagram.h +++ b/src/common/model/diagram.h @@ -44,6 +44,9 @@ public: void set_filter(std::unique_ptr filter); + void set_complete(bool complete); + bool complete() const; + // TODO: refactor to a template method bool should_include(const element &e) const; bool should_include(const std::string &e) const; @@ -55,6 +58,7 @@ public: private: std::string name_; std::unique_ptr filter_; + bool complete_{false}; }; } diff --git a/src/common/model/diagram_filter.cc b/src/common/model/diagram_filter.cc index 75a1b525..ba35e946 100644 --- a/src/common/model/diagram_filter.cc +++ b/src/common/model/diagram_filter.cc @@ -20,7 +20,8 @@ namespace clanguml::common::model { -std::optional filter_visitor::match(const diagram &d, const common::model::element &e) +std::optional filter_visitor::match( + const diagram &d, const common::model::element &e) { return {}; } @@ -31,7 +32,8 @@ std::optional filter_visitor::match( return {}; } -std::optional filter_visitor::match(const diagram &d, const common::model::scope_t &r) +std::optional filter_visitor::match( + const diagram &d, const common::model::scope_t &r) { return {}; } diff --git a/src/common/model/diagram_filter.h b/src/common/model/diagram_filter.h index ccccf522..dce99da2 100644 --- a/src/common/model/diagram_filter.h +++ b/src/common/model/diagram_filter.h @@ -61,19 +61,34 @@ struct namespace_filter : public filter_visitor { std::optional match(const diagram &d, const namespace_ &ns) override { - if (namespaces_.empty()) + if (namespaces_.empty() || ns.is_empty()) return {}; - return std::any_of(namespaces_.begin(), namespaces_.end(), - [&ns](const auto &nsit) { return ns.starts_with(nsit); }); + return std::any_of( + namespaces_.begin(), namespaces_.end(), [&ns](const auto &nsit) { + return ns.starts_with(nsit) || ns == nsit; + }); } std::optional match(const diagram &d, const element &e) override { - return std::any_of( - namespaces_.begin(), namespaces_.end(), [&e](const auto &nsit) { - return e.get_namespace().starts_with(nsit); - }); + if (namespaces_.empty()) + return {}; + + if (dynamic_cast(&e) != nullptr) { + return std::any_of( + namespaces_.begin(), namespaces_.end(), [&e](const auto &nsit) { + return (e.get_namespace() | e.name()).starts_with(nsit) || + nsit.starts_with(e.get_namespace() | e.name()) || + (e.get_namespace() | e.name()) == nsit; + }); + } + else { + return std::any_of( + namespaces_.begin(), namespaces_.end(), [&e](const auto &nsit) { + return e.get_namespace().starts_with(nsit); + }); + } } std::vector namespaces_; @@ -114,6 +129,9 @@ struct subclass_filter : public filter_visitor { if (roots_.empty()) return {}; + if (!d.complete()) + return {}; + const auto &cd = dynamic_cast(d); // First get all parents of element e @@ -200,11 +218,14 @@ struct context_filter : public filter_visitor { std::optional match(const diagram &d, const element &r) override { + if (!d.complete()) + return {}; + if (context_.empty()) return {}; return std::any_of(context_.begin(), context_.end(), - [&r](const auto &rel) { return true; }); + [&r](const auto &rel) { return std::optional{}; }); } std::vector context_; @@ -248,7 +269,7 @@ public: auto m = ex->match(diagram_, e); // Return a match if a filter is undefined for specific element // or it's a match - return !m.has_value() || m.value(); + return m.has_value() && m.value(); }); if (exc) return false; @@ -274,18 +295,14 @@ private: if (c.include) { inclusive_.emplace_back(std::make_unique( filter_t::kInclusive, c.include().namespaces)); - inclusive_.emplace_back(std::make_unique( filter_t::kInclusive, c.include().relationships)); inclusive_.emplace_back(std::make_unique( filter_t::kInclusive, c.include().scopes)); - inclusive_.emplace_back(std::make_unique( filter_t::kInclusive, c.include().elements)); - inclusive_.emplace_back(std::make_unique( filter_t::kInclusive, c.include().subclasses)); - inclusive_.emplace_back(std::make_unique( filter_t::kInclusive, c.include().context)); } @@ -308,9 +325,8 @@ private: } std::vector> inclusive_; - // std::vector> inclusive_and_; - std::vector> exclusive_; + const common::model::diagram &diagram_; }; diff --git a/src/config/config.cc b/src/config/config.cc index c644d6b9..fea6b369 100644 --- a/src/config/config.cc +++ b/src/config/config.cc @@ -318,8 +318,7 @@ template <> struct convert { node["relationships"].as(); if (node["elements"]) - rhs.elements = - node["elements"].as(); + rhs.elements = node["elements"].as(); if (node["scopes"]) rhs.scopes = node["scopes"].as(); diff --git a/src/config/config.h b/src/config/config.h index 8f8caf1c..089c45f5 100644 --- a/src/config/config.h +++ b/src/config/config.h @@ -35,7 +35,6 @@ namespace clanguml { namespace config { - enum class diagram_type { class_diagram, sequence_diagram, package_diagram }; enum class method_arguments { full, abbreviated, none }; diff --git a/src/main.cc b/src/main.cc index b1ca2acc..d7a4d1c8 100644 --- a/src/main.cc +++ b/src/main.cc @@ -152,7 +152,7 @@ void generate_diagram(const std::string &od, const std::string &name, dynamic_cast(*diagram), verbose); ofs << clanguml::class_diagram::generators::plantuml::generator( - dynamic_cast(*diagram), model); + dynamic_cast(*diagram), *model); } else if (diagram->type() == diagram_type::sequence_diagram) { using diagram_config = sequence_diagram; @@ -167,7 +167,7 @@ void generate_diagram(const std::string &od, const std::string &name, ofs << clanguml::sequence_diagram::generators::plantuml::generator( dynamic_cast(*diagram), - model); + *model); } else if (diagram->type() == diagram_type::package_diagram) { using diagram_config = package_diagram; @@ -181,7 +181,7 @@ void generate_diagram(const std::string &od, const std::string &name, dynamic_cast(*diagram), verbose); ofs << clanguml::package_diagram::generators::plantuml::generator( - dynamic_cast(*diagram), model); + dynamic_cast(*diagram), *model); } LOG_INFO("Written {} diagram to {}", name, path.string()); diff --git a/src/package_diagram/visitor/translation_unit_visitor.cc b/src/package_diagram/visitor/translation_unit_visitor.cc index 09908fd9..7bda748e 100644 --- a/src/package_diagram/visitor/translation_unit_visitor.cc +++ b/src/package_diagram/visitor/translation_unit_visitor.cc @@ -95,18 +95,18 @@ void translation_unit_visitor::operator()(const cppast::cpp_entity &file) auto package_path = package_parent | e.name(); auto usn = ctx.config().using_namespace(); - if (ctx.diagram().should_include(package_path)) { - auto p = std::make_unique(usn); - package_path = package_path.relative_to(usn); + auto p = std::make_unique(usn); + package_path = package_path.relative_to(usn); - if (e.location().has_value()) { - p->set_file(e.location().value().file); - p->set_line(e.location().value().line); - } + if (e.location().has_value()) { + p->set_file(e.location().value().file); + p->set_line(e.location().value().line); + } - p->set_name(e.name()); - p->set_namespace(package_parent); + p->set_name(e.name()); + p->set_namespace(package_parent); + if (ctx.diagram().should_include(*p)) { if (ns_declaration.comment().has_value()) p->add_decorators(decorators::parse( ns_declaration.comment().value())); diff --git a/tests/t00002/test_case.h b/tests/t00002/test_case.h index c595f94d..fd3995bb 100644 --- a/tests/t00002/test_case.h +++ b/tests/t00002/test_case.h @@ -33,12 +33,12 @@ TEST_CASE("t00002", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00002_class"); + REQUIRE(model->name() == "t00002_class"); - REQUIRE(model.should_include({"clanguml", "t00002"}, "A")); - REQUIRE(!model.should_include({"std"}, "vector")); + REQUIRE(model->should_include({"clanguml", "t00002"}, "A")); + REQUIRE(!model->should_include({"std"}, "vector")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00003/test_case.h b/tests/t00003/test_case.h index 843418fa..23ad9731 100644 --- a/tests/t00003/test_case.h +++ b/tests/t00003/test_case.h @@ -30,10 +30,10 @@ TEST_CASE("t00003", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00003_class"); - REQUIRE(model.should_include(std::string("clanguml::t00003::A"))); + REQUIRE(model->name() == "t00003_class"); + REQUIRE(model->should_include(std::string("clanguml::t00003::A"))); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00004/test_case.h b/tests/t00004/test_case.h index 1a1798f4..6f224ebf 100644 --- a/tests/t00004/test_case.h +++ b/tests/t00004/test_case.h @@ -29,13 +29,13 @@ TEST_CASE("t00004", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00004_class"); - REQUIRE(!model.should_include("std::vector")); - REQUIRE(model.should_include("clanguml::t00004::A")); - REQUIRE(model.should_include("clanguml::t00004::A::AA")); - REQUIRE(model.should_include("clanguml::t00004::A:::AAA")); + REQUIRE(model->name() == "t00004_class"); + REQUIRE(!model->should_include("std::vector")); + REQUIRE(model->should_include("clanguml::t00004::A")); + REQUIRE(model->should_include("clanguml::t00004::A::AA")); + REQUIRE(model->should_include("clanguml::t00004::A:::AAA")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00005/test_case.h b/tests/t00005/test_case.h index b17dc0cf..aa4f1753 100644 --- a/tests/t00005/test_case.h +++ b/tests/t00005/test_case.h @@ -26,13 +26,13 @@ TEST_CASE("t00005", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00005_class"); - REQUIRE(model.should_include("clanguml::t00005::A")); - REQUIRE(model.should_include("clanguml::t00005::B")); - REQUIRE(model.should_include("clanguml::t00005::C")); - REQUIRE(model.should_include("clanguml::t00005::D")); + REQUIRE(model->name() == "t00005_class"); + REQUIRE(model->should_include("clanguml::t00005::A")); + REQUIRE(model->should_include("clanguml::t00005::B")); + REQUIRE(model->should_include("clanguml::t00005::C")); + REQUIRE(model->should_include("clanguml::t00005::D")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00006/test_case.h b/tests/t00006/test_case.h index b7cd381b..9037f669 100644 --- a/tests/t00006/test_case.h +++ b/tests/t00006/test_case.h @@ -26,15 +26,15 @@ TEST_CASE("t00006", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00006_class"); + REQUIRE(model->name() == "t00006_class"); - REQUIRE(model.should_include("clanguml::t00006::A")); - REQUIRE(model.should_include("clanguml::t00006::B")); - REQUIRE(model.should_include("clanguml::t00006::C")); - REQUIRE(model.should_include("clanguml::t00006::D")); - REQUIRE(model.should_include("clanguml::t00006::E")); + REQUIRE(model->should_include("clanguml::t00006::A")); + REQUIRE(model->should_include("clanguml::t00006::B")); + REQUIRE(model->should_include("clanguml::t00006::C")); + REQUIRE(model->should_include("clanguml::t00006::D")); + REQUIRE(model->should_include("clanguml::t00006::E")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00007/test_case.h b/tests/t00007/test_case.h index 4c473a28..af0c02a0 100644 --- a/tests/t00007/test_case.h +++ b/tests/t00007/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t00007", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00007_class"); + REQUIRE(model->name() == "t00007_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00008/test_case.h b/tests/t00008/test_case.h index d9be705f..ce30cc75 100644 --- a/tests/t00008/test_case.h +++ b/tests/t00008/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t00008", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00008_class"); + REQUIRE(model->name() == "t00008_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00009/test_case.h b/tests/t00009/test_case.h index 7549eea5..4faedca7 100644 --- a/tests/t00009/test_case.h +++ b/tests/t00009/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t00009", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00009_class"); + REQUIRE(model->name() == "t00009_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00010/test_case.h b/tests/t00010/test_case.h index 77159904..19dc49f1 100644 --- a/tests/t00010/test_case.h +++ b/tests/t00010/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t00010", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00010_class"); + REQUIRE(model->name() == "t00010_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00011/test_case.h b/tests/t00011/test_case.h index aa65f77d..49465640 100644 --- a/tests/t00011/test_case.h +++ b/tests/t00011/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t00011", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00011_class"); + REQUIRE(model->name() == "t00011_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00012/test_case.h b/tests/t00012/test_case.h index 59359155..1a8dd1cd 100644 --- a/tests/t00012/test_case.h +++ b/tests/t00012/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t00012", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00012_class"); + REQUIRE(model->name() == "t00012_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00013/test_case.h b/tests/t00013/test_case.h index bd5aa274..5bcf89c4 100644 --- a/tests/t00013/test_case.h +++ b/tests/t00013/test_case.h @@ -26,13 +26,12 @@ TEST_CASE("t00013", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00013_class"); - REQUIRE(model.should_include("clanguml::t00013::A")); - REQUIRE(model.should_include("clanguml::t00013::B")); - REQUIRE(model.should_include("ABCD::F")); + REQUIRE(model->name() == "t00013_class"); + REQUIRE(model->should_include("clanguml::t00013::A")); + REQUIRE(model->should_include("clanguml::t00013::B")); + REQUIRE(model->should_include("ABCD::F")); - - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00014/test_case.h b/tests/t00014/test_case.h index 83627487..70a414af 100644 --- a/tests/t00014/test_case.h +++ b/tests/t00014/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00014", "[test-case][class]") REQUIRE(diagram->name == "t00014_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00014_class"); - REQUIRE(model.should_include("clanguml::t00014::S")); + REQUIRE(model->name() == "t00014_class"); + REQUIRE(model->should_include("clanguml::t00014::B")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00015/test_case.h b/tests/t00015/test_case.h index b0287069..91a9d094 100644 --- a/tests/t00015/test_case.h +++ b/tests/t00015/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00015", "[test-case][class]") REQUIRE(diagram->name == "t00015_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00015_class"); - REQUIRE(model.should_include("clanguml::t00015::ns1::ns2::A")); + REQUIRE(model->name() == "t00015_class"); + REQUIRE(model->should_include("clanguml::t00015::ns1::ns2::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00016/test_case.h b/tests/t00016/test_case.h index 58a49181..7efc05d8 100644 --- a/tests/t00016/test_case.h +++ b/tests/t00016/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00016", "[test-case][class]") REQUIRE(diagram->name == "t00016_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00016_class"); - REQUIRE(model.should_include("clanguml::t00016::is_numeric")); + REQUIRE(model->name() == "t00016_class"); + REQUIRE(model->should_include("clanguml::t00016::is_numeric")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00017/test_case.h b/tests/t00017/test_case.h index 71efe6de..147bae53 100644 --- a/tests/t00017/test_case.h +++ b/tests/t00017/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t00017", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00017_class"); + REQUIRE(model->name() == "t00017_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00018/test_case.h b/tests/t00018/test_case.h index c2e16777..c1b54842 100644 --- a/tests/t00018/test_case.h +++ b/tests/t00018/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00018", "[test-case][class]") REQUIRE(diagram->name == "t00018_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00018_class"); - REQUIRE(model.should_include("clanguml::t00018::widget")); + REQUIRE(model->name() == "t00018_class"); + REQUIRE(model->should_include("clanguml::t00018::widget")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00019/test_case.h b/tests/t00019/test_case.h index ec0c8ca6..cddbdb28 100644 --- a/tests/t00019/test_case.h +++ b/tests/t00019/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t00019", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00019_class"); + REQUIRE(model->name() == "t00019_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00020/test_case.h b/tests/t00020/test_case.h index 43f82c39..8ee87691 100644 --- a/tests/t00020/test_case.h +++ b/tests/t00020/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00020", "[test-case][class]") REQUIRE(diagram->name == "t00020_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00020_class"); - REQUIRE(model.should_include("clanguml::t00020::ProductA")); + REQUIRE(model->name() == "t00020_class"); + REQUIRE(model->should_include("clanguml::t00020::ProductA")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00021/test_case.h b/tests/t00021/test_case.h index 5e2d8ff1..fafa3b82 100644 --- a/tests/t00021/test_case.h +++ b/tests/t00021/test_case.h @@ -26,10 +26,10 @@ TEST_CASE("t00021", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00021_class"); - REQUIRE(model.should_include("clanguml::t00021::Visitor")); + REQUIRE(model->name() == "t00021_class"); + REQUIRE(model->should_include("clanguml::t00021::Visitor")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00022/test_case.h b/tests/t00022/test_case.h index d4a0ae6e..426894fb 100644 --- a/tests/t00022/test_case.h +++ b/tests/t00022/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00022", "[test-case][class]") REQUIRE(diagram->name == "t00022_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00022_class"); - REQUIRE(model.should_include("clanguml::t00022::A")); + REQUIRE(model->name() == "t00022_class"); + REQUIRE(model->should_include("clanguml::t00022::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00023/test_case.h b/tests/t00023/test_case.h index f9d2d69c..dffcbcd9 100644 --- a/tests/t00023/test_case.h +++ b/tests/t00023/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00023", "[test-case][class]") REQUIRE(diagram->name == "t00023_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00023_class"); - REQUIRE(model.should_include("clanguml::t00023::Visitor")); + REQUIRE(model->name() == "t00023_class"); + REQUIRE(model->should_include("clanguml::t00023::Visitor")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00024/test_case.h b/tests/t00024/test_case.h index 666b77e3..3b1acd59 100644 --- a/tests/t00024/test_case.h +++ b/tests/t00024/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00024", "[test-case][class]") REQUIRE(diagram->name == "t00024_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00024_class"); - REQUIRE(model.should_include("clanguml::t00024::A")); + REQUIRE(model->name() == "t00024_class"); + REQUIRE(model->should_include("clanguml::t00024::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00025/test_case.h b/tests/t00025/test_case.h index 15751f2c..078af9f2 100644 --- a/tests/t00025/test_case.h +++ b/tests/t00025/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00025", "[test-case][class]") REQUIRE(diagram->name == "t00025_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00025_class"); - REQUIRE(model.should_include("clanguml::t00025::A")); + REQUIRE(model->name() == "t00025_class"); + REQUIRE(model->should_include("clanguml::t00025::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00026/test_case.h b/tests/t00026/test_case.h index 8d313dd5..9e4ab933 100644 --- a/tests/t00026/test_case.h +++ b/tests/t00026/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00026", "[test-case][class]") REQUIRE(diagram->name == "t00026_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00026_class"); - REQUIRE(model.should_include("clanguml::t00026::A")); + REQUIRE(model->name() == "t00026_class"); + REQUIRE(model->should_include("clanguml::t00026::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00027/test_case.h b/tests/t00027/test_case.h index 683d5467..f073b50b 100644 --- a/tests/t00027/test_case.h +++ b/tests/t00027/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00027", "[test-case][class]") REQUIRE(diagram->name == "t00027_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00027_class"); - REQUIRE(model.should_include("clanguml::t00027::A")); + REQUIRE(model->name() == "t00027_class"); + REQUIRE(model->should_include("clanguml::t00027::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00028/test_case.h b/tests/t00028/test_case.h index 21f57e05..9cb64281 100644 --- a/tests/t00028/test_case.h +++ b/tests/t00028/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00028", "[test-case][class]") REQUIRE(diagram->name == "t00028_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00028_class"); - REQUIRE(model.should_include("clanguml::t00028::A")); + REQUIRE(model->name() == "t00028_class"); + REQUIRE(model->should_include("clanguml::t00028::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00029/test_case.h b/tests/t00029/test_case.h index d4ff282b..7ba0d045 100644 --- a/tests/t00029/test_case.h +++ b/tests/t00029/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00029", "[test-case][class]") REQUIRE(diagram->name == "t00029_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00029_class"); - REQUIRE(model.should_include("clanguml::t00029::A")); + REQUIRE(model->name() == "t00029_class"); + REQUIRE(model->should_include("clanguml::t00029::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00030/test_case.h b/tests/t00030/test_case.h index e97303e1..76f7b362 100644 --- a/tests/t00030/test_case.h +++ b/tests/t00030/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00030", "[test-case][class]") REQUIRE(diagram->name == "t00030_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00030_class"); - REQUIRE(model.should_include("clanguml::t00030::A")); + REQUIRE(model->name() == "t00030_class"); + REQUIRE(model->should_include("clanguml::t00030::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00031/test_case.h b/tests/t00031/test_case.h index 70c8c9a1..338c1b90 100644 --- a/tests/t00031/test_case.h +++ b/tests/t00031/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00031", "[test-case][class]") REQUIRE(diagram->name == "t00031_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00031_class"); - REQUIRE(model.should_include("clanguml::t00031::A")); + REQUIRE(model->name() == "t00031_class"); + REQUIRE(model->should_include("clanguml::t00031::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00032/test_case.h b/tests/t00032/test_case.h index 838bcd12..28baa3de 100644 --- a/tests/t00032/test_case.h +++ b/tests/t00032/test_case.h @@ -24,13 +24,12 @@ TEST_CASE("t00032", "[test-case][class]") REQUIRE(diagram->name == "t00032_class"); - auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00032_class"); - REQUIRE(model.should_include("clanguml::t00032::A")); + REQUIRE(model->name() == "t00032_class"); + REQUIRE(model->should_include("clanguml::t00032::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00033/test_case.h b/tests/t00033/test_case.h index f58d062e..f65c1c8d 100644 --- a/tests/t00033/test_case.h +++ b/tests/t00033/test_case.h @@ -26,10 +26,10 @@ TEST_CASE("t00033", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00033_class"); - REQUIRE(model.should_include("clanguml::t00033::A")); + REQUIRE(model->name() == "t00033_class"); + REQUIRE(model->should_include("clanguml::t00033::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00034/test_case.h b/tests/t00034/test_case.h index 2dc3f7d2..44a64a88 100644 --- a/tests/t00034/test_case.h +++ b/tests/t00034/test_case.h @@ -26,10 +26,10 @@ TEST_CASE("t00034", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00034_class"); - REQUIRE(model.should_include("clanguml::t00034::A")); + REQUIRE(model->name() == "t00034_class"); + REQUIRE(model->should_include("clanguml::t00034::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00035/test_case.h b/tests/t00035/test_case.h index 9aed7ede..8a0c3694 100644 --- a/tests/t00035/test_case.h +++ b/tests/t00035/test_case.h @@ -26,10 +26,10 @@ TEST_CASE("t00035", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00035_class"); - REQUIRE(model.should_include("clanguml::t00035::A")); + REQUIRE(model->name() == "t00035_class"); + REQUIRE(model->should_include("clanguml::t00035::A")); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00036/test_case.h b/tests/t00036/test_case.h index ee8a3ae4..30393389 100644 --- a/tests/t00036/test_case.h +++ b/tests/t00036/test_case.h @@ -27,9 +27,9 @@ TEST_CASE("t00036", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00036_class"); + REQUIRE(model->name() == "t00036_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00037/test_case.h b/tests/t00037/test_case.h index 87927d99..46b74998 100644 --- a/tests/t00037/test_case.h +++ b/tests/t00037/test_case.h @@ -27,9 +27,9 @@ TEST_CASE("t00037", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00037_class"); + REQUIRE(model->name() == "t00037_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00038/test_case.h b/tests/t00038/test_case.h index 8ca2b260..992d94b4 100644 --- a/tests/t00038/test_case.h +++ b/tests/t00038/test_case.h @@ -27,9 +27,9 @@ TEST_CASE("t00038", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00038_class"); + REQUIRE(model->name() == "t00038_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t00039/test_case.h b/tests/t00039/test_case.h index 10e3bece..1c2d8cd9 100644 --- a/tests/t00039/test_case.h +++ b/tests/t00039/test_case.h @@ -27,9 +27,9 @@ TEST_CASE("t00039", "[test-case][class]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t00039_class"); + REQUIRE(model->name() == "t00039_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t20001/test_case.h b/tests/t20001/test_case.h index ed85fe9f..d330bfd9 100644 --- a/tests/t20001/test_case.h +++ b/tests/t20001/test_case.h @@ -26,13 +26,13 @@ TEST_CASE("t20001", "[test-case][sequence]") auto model = generate_sequence_diagram(db, diagram); - REQUIRE(model.name() == "t20001_sequence"); + REQUIRE(model->name() == "t20001_sequence"); - REQUIRE(model.should_include("clanguml::t20001::A")); - REQUIRE(!model.should_include("clanguml::t20001::detail::C")); - REQUIRE(!model.should_include("std::vector")); + REQUIRE(model->should_include("clanguml::t20001::A")); + REQUIRE(!model->should_include("clanguml::t20001::detail::C")); + REQUIRE(!model->should_include("std::vector")); - auto puml = generate_sequence_puml(diagram, model); + auto puml = generate_sequence_puml(diagram, *model); REQUIRE_THAT(puml, StartsWith("@startuml")); REQUIRE_THAT(puml, EndsWith("@enduml\n")); diff --git a/tests/t20002/test_case.h b/tests/t20002/test_case.h index 24cc8501..a5ab0472 100644 --- a/tests/t20002/test_case.h +++ b/tests/t20002/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t20002", "[test-case][sequence]") auto model = generate_sequence_diagram(db, diagram); - REQUIRE(model.name() == "t20002_sequence"); + REQUIRE(model->name() == "t20002_sequence"); - auto puml = generate_sequence_puml(diagram, model); + auto puml = generate_sequence_puml(diagram, *model); REQUIRE_THAT(puml, StartsWith("@startuml")); REQUIRE_THAT(puml, EndsWith("@enduml\n")); diff --git a/tests/t30001/test_case.h b/tests/t30001/test_case.h index 1e46ad41..15c6a261 100644 --- a/tests/t30001/test_case.h +++ b/tests/t30001/test_case.h @@ -26,13 +26,13 @@ TEST_CASE("t30001", "[test-case][package]") auto model = generate_package_diagram(db, diagram); - REQUIRE(model.name() == "t30001_package"); + REQUIRE(model->name() == "t30001_package"); - REQUIRE(model.should_include("clanguml::t30001::A")); - REQUIRE(!model.should_include("clanguml::t30001::detail::C")); - REQUIRE(!model.should_include("std::vector")); + REQUIRE(model->should_include("clanguml::t30001::A")); + REQUIRE(!model->should_include("clanguml::t30001::detail::C")); + REQUIRE(!model->should_include("std::vector")); - auto puml = generate_package_puml(diagram, model); + auto puml = generate_package_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t30002/test_case.h b/tests/t30002/test_case.h index 04b1d2dc..e77e7b05 100644 --- a/tests/t30002/test_case.h +++ b/tests/t30002/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t30002", "[test-case][package]") auto model = generate_package_diagram(db, diagram); - REQUIRE(model.name() == "t30002_package"); + REQUIRE(model->name() == "t30002_package"); - auto puml = generate_package_puml(diagram, model); + auto puml = generate_package_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t30003/test_case.h b/tests/t30003/test_case.h index 1495c3c3..faa29614 100644 --- a/tests/t30003/test_case.h +++ b/tests/t30003/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t30003", "[test-case][package]") auto model = generate_package_diagram(db, diagram); - REQUIRE(model.name() == "t30003_package"); + REQUIRE(model->name() == "t30003_package"); - auto puml = generate_package_puml(diagram, model); + auto puml = generate_package_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t30004/test_case.h b/tests/t30004/test_case.h index 60dda007..e850084b 100644 --- a/tests/t30004/test_case.h +++ b/tests/t30004/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t30004", "[test-case][package]") auto model = generate_package_diagram(db, diagram); - REQUIRE(model.name() == "t30004_package"); + REQUIRE(model->name() == "t30004_package"); - auto puml = generate_package_puml(diagram, model); + auto puml = generate_package_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t30005/test_case.h b/tests/t30005/test_case.h index 1c9e82c8..30c181f3 100644 --- a/tests/t30005/test_case.h +++ b/tests/t30005/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t30005", "[test-case][package]") auto model = generate_package_diagram(db, diagram); - REQUIRE(model.name() == "t30005_package"); + REQUIRE(model->name() == "t30005_package"); - auto puml = generate_package_puml(diagram, model); + auto puml = generate_package_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t30006/test_case.h b/tests/t30006/test_case.h index 16385c0e..4991f12a 100644 --- a/tests/t30006/test_case.h +++ b/tests/t30006/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t30006", "[test-case][package]") auto model = generate_package_diagram(db, diagram); - REQUIRE(model.name() == "t30006_package"); + REQUIRE(model->name() == "t30006_package"); - auto puml = generate_package_puml(diagram, model); + auto puml = generate_package_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t30007/test_case.h b/tests/t30007/test_case.h index 5bc95e40..03850092 100644 --- a/tests/t30007/test_case.h +++ b/tests/t30007/test_case.h @@ -26,9 +26,9 @@ TEST_CASE("t30007", "[test-case][package]") auto model = generate_package_diagram(db, diagram); - REQUIRE(model.name() == "t30007_package"); + REQUIRE(model->name() == "t30007_package"); - auto puml = generate_package_puml(diagram, model); + auto puml = generate_package_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/t90000/test_case.h b/tests/t90000/test_case.h index 068416ce..425d5dc9 100644 --- a/tests/t90000/test_case.h +++ b/tests/t90000/test_case.h @@ -24,9 +24,9 @@ TEST_CASE("t90000", "[test-case][config]") auto model = generate_class_diagram(db, diagram); - REQUIRE(model.name() == "t90000_class"); + REQUIRE(model->name() == "t90000_class"); - auto puml = generate_class_puml(diagram, model); + auto puml = generate_class_puml(diagram, *model); AliasMatcher _A(puml); REQUIRE_THAT(puml, StartsWith("@startuml")); diff --git a/tests/test_cases.cc b/tests/test_cases.cc index 711e4d28..727ecbc0 100644 --- a/tests/test_cases.cc +++ b/tests/test_cases.cc @@ -51,8 +51,8 @@ std::pair load_config2( return std::make_pair(std::move(config), std::move(db)); } -clanguml::sequence_diagram::model::diagram generate_sequence_diagram( - cppast::libclang_compilation_database &db, +std::unique_ptr +generate_sequence_diagram(cppast::libclang_compilation_database &db, std::shared_ptr diagram) { using diagram_config = clanguml::config::sequence_diagram; @@ -69,7 +69,7 @@ clanguml::sequence_diagram::model::diagram generate_sequence_diagram( return std::move(model); } -clanguml::class_diagram::model::diagram generate_class_diagram( +std::unique_ptr generate_class_diagram( cppast::libclang_compilation_database &db, std::shared_ptr diagram) { @@ -87,8 +87,8 @@ clanguml::class_diagram::model::diagram generate_class_diagram( return std::move(model); } -clanguml::package_diagram::model::diagram generate_package_diagram( - cppast::libclang_compilation_database &db, +std::unique_ptr +generate_package_diagram(cppast::libclang_compilation_database &db, std::shared_ptr diagram) { using diagram_config = clanguml::config::package_diagram;