Fixed mermaid verbatim directives handling

This commit is contained in:
Bartek Kryza
2023-09-10 12:14:11 +02:00
parent 9a6def801c
commit 4a19c8ba23
15 changed files with 178 additions and 21 deletions

View File

@@ -96,4 +96,10 @@ TEST_CASE("t20006", "[test-case][sequence]")
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto mmd = generate_sequence_mermaid(diagram, *model);
save_mermaid(config.output_directory(), diagram->name + ".mmd", mmd);
}
}

View File

@@ -121,4 +121,10 @@ TEST_CASE("t20012", "[test-case][sequence]")
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto mmd = generate_sequence_mermaid(diagram, *model);
save_mermaid(config.output_directory(), diagram->name + ".mmd", mmd);
}
}

View File

@@ -18,3 +18,15 @@ diagrams:
- 'class "Boo" as C_002'
- 'class C_002 {'
- '}'
mermaid:
before:
- 'class C_001["Foo"]'
- 'class C_001 {'
- ' +int value'
- '}'
- 'C_001 <|-- ArrayList'
- 'note for C_001 "This is a very important class."'
- 'note "This is a\nfloating note"'
- 'class C_002["Boo"]'
- 'class C_002 {'
- '}'

View File

@@ -26,14 +26,30 @@ TEST_CASE("t90000", "[test-case][config]")
REQUIRE(model->name() == "t90000_class");
auto puml = generate_class_puml(diagram, *model);
AliasMatcher _A(puml);
{
auto puml = generate_class_puml(diagram, *model);
AliasMatcher _A(puml);
REQUIRE_THAT(puml, StartsWith("@startuml"));
REQUIRE_THAT(puml, EndsWith("@enduml\n"));
REQUIRE_THAT(puml, StartsWith("@startuml"));
REQUIRE_THAT(puml, EndsWith("@enduml\n"));
REQUIRE_THAT(puml, IsClass(_A("Foo")));
REQUIRE_THAT(puml, IsClass(_A("Boo")));
REQUIRE_THAT(puml, IsClass(_A("Foo")));
REQUIRE_THAT(puml, IsClass(_A("Boo")));
save_puml(config.output_directory(), diagram->name + ".puml", puml);
save_puml(config.output_directory(), diagram->name + ".puml", puml);
}
{
auto j = generate_class_json(diagram, *model);
using namespace json;
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto mmd = generate_class_mermaid(diagram, *model);
save_mermaid(config.output_directory(), diagram->name + ".mmd", mmd);
}
}

View File

@@ -282,7 +282,6 @@ void save_puml(const std::string &path, const std::string &filename,
const std::string &puml)
{
std::filesystem::path p{path};
p /= "puml";
p /= filename;
save_diagram(p, puml);
}
@@ -291,7 +290,6 @@ void save_json(const std::string &path, const std::string &filename,
const nlohmann::json &j)
{
std::filesystem::path p{path};
p /= "json";
p /= filename;
save_diagram(p, j);
}
@@ -300,7 +298,6 @@ void save_mermaid(const std::string &path, const std::string &filename,
const std::string &mmd)
{
std::filesystem::path p{path};
p /= "mermaid";
p /= filename;
save_diagram(p, mmd);
}