Added diagram templates to config

This commit is contained in:
Bartek Kryza
2023-03-07 23:03:02 +01:00
parent 0dc7445909
commit 2092a0e3e6
6 changed files with 151 additions and 1 deletions

View File

@@ -258,4 +258,47 @@ TEST_CASE("Test config emitters", "[unit-test]")
REQUIRE(cfg.diagrams.size() == cfg_emitted.diagrams.size());
std::filesystem::remove(tmp_file);
}
}
TEST_CASE("Test config diagram_templates", "[unit-test]")
{
auto cfg =
clanguml::config::load("./test_config_data/diagram_templates.yml");
REQUIRE(cfg.diagram_templates().size() == 3);
REQUIRE(cfg.diagram_templates()["bases_hierarchy_tmpl"].type ==
clanguml::common::model::diagram_t::kClass);
REQUIRE(cfg.diagram_templates()["bases_hierarchy_tmpl"].jinja_template ==
R"(name: "{{ class_name }}_parents_hierarchy"
type: class
include:
parents: "{{ class_name }}"
namespaces: "{{ namespace_name }}"
relationships:
- inheritance
exclude:
access: [public, protected, private]
plantuml:
before:
- left to right direction)");
REQUIRE(cfg.diagram_templates()["children_hierarchy_tmpl"].type ==
clanguml::common::model::diagram_t::kClass);
REQUIRE(cfg.diagram_templates()["children_hierarchy_tmpl"].jinja_template ==
R"(name: "{{ class_name }}_children_hierarchy"
type: class
include:
subclasses: "{{ class_name }}"
namespaces: "{{ namespace_name }}"
relationships:
- inheritance
exclude:
access: [public, protected, private]
plantuml:
before:
- left to right direction)");
REQUIRE(cfg.diagram_templates()["main_sequence_tmpl"].type ==
clanguml::common::model::diagram_t::kSequence);
}

View File

@@ -0,0 +1,39 @@
compilation_database_dir: debug
output_directory: output
diagram_templates:
bases_hierarchy_tmpl:
name: '{{ class_name }}_parents_hierarchy'
type: class
include:
parents: '{{ class_name }}'
namespaces: '{{ namespace_name }}'
relationships:
- inheritance
exclude:
access: [public, protected, private]
plantuml:
before:
- left to right direction
children_hierarchy_tmpl: |
name: '{{ class_name }}_children_hierarchy'
type: class
include:
subclasses: '{{ class_name }}'
namespaces: '{{ namespace_name }}'
relationships:
- inheritance
exclude:
access: [public, protected, private]
plantuml:
before:
- left to right direction
main_sequence_tmpl: |
name: main_sequence_diargam
type: sequence
glob: [ {{ }} ]
start_from:
- function: 'main(int,const char**)'
diagrams:
diagram1:
type: class