Refactored sequence diagrams test cases (#266)

This commit is contained in:
Bartek Kryza
2024-05-20 21:56:54 +02:00
parent 4b5cfa7b48
commit 387b46f683
16 changed files with 40 additions and 3000 deletions

View File

@@ -27,93 +27,13 @@ TEST_CASE("t20017")
REQUIRE(MessageOrder(src,
{
//
// {Entrypoint{}, "t20017.cc", "tmain()"}, //
{"t20017.cc", "include/t20017_a.h", "a3(int,int)"}, //
{Entrypoint{}, "t20017.cc", "tmain()"}, //
{"t20017.cc", "include/t20017_a.h", "a3(int,int)"}, //
{"t20017.cc", "include/t20017_b.h", "b1(int,int)"}, //
/* {"t20017.cc", "include/t20017_a.h", "a2(int,int)"}, //
{"t20017.cc", "include/t20017_a.h", "a2(int,int)"}, //
{"t20017.cc", "include/t20017_a.h", "a1(int,int)"}, //
{"t20017.cc", "include/t20017_b.h", "b2<int>(int,int)"}, //
{Exitpoint{}, "t20017.cc"}, //*/
{Exitpoint{}, "t20017.cc"}, //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
// Check if all calls exist
REQUIRE_THAT(src, HasEntrypoint(_A("t20017.cc"), "tmain()"));
REQUIRE_THAT(src,
HasCall(_A("t20017.cc"), _A("include/t20017_a.h"), "a1(int,int)"));
REQUIRE_THAT(src,
HasCall(_A("t20017.cc"), _A("include/t20017_a.h"), "a2(int,int)"));
REQUIRE_THAT(src,
HasCall(_A("t20017.cc"), _A("include/t20017_a.h"), "a3(int,int)"));
REQUIRE_THAT(src,
HasCall(_A("t20017.cc"), _A("include/t20017_b.h"), "b1(int,int)"));
REQUIRE_THAT(src,
HasCall(
_A("t20017.cc"), _A("include/t20017_b.h"), "b2<int>(int,int)"));
REQUIRE_THAT(src, HasExitpoint(_A("t20017.cc")));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
const auto &t20017_cc = get_participant(j, "t20017.cc");
CHECK(t20017_cc.has_value());
CHECK(t20017_cc.value()["type"] == "file");
CHECK(t20017_cc.value()["name"] == "t20017.cc");
CHECK(t20017_cc.value()["display_name"] == "t20017.cc");
std::vector<int> messages = {
FindMessage(j, File("t20017.cc"), File("include/t20017_a.h"),
"a3(int,int)"),
FindMessage(j, File("t20017.cc"), File("include/t20017_b.h"),
"b1(int,int)"),
FindMessage(j, File("t20017.cc"), File("include/t20017_a.h"),
"a2(int,int)"),
FindMessage(j, File("t20017.cc"), File("include/t20017_a.h"),
"a1(int,int)"),
FindMessage(j, File("t20017.cc"), File("include/t20017_b.h"),
"b2<int>(int,int)")};
REQUIRE(std::is_sorted(messages.begin(), messages.end()));
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
using mermaid::HasEntrypoint;
using mermaid::HasExitpoint;
REQUIRE_THAT(src, HasEntrypoint(_A("t20017.cc"), "tmain()"));
REQUIRE_THAT(src,
HasCall(_A("t20017.cc"), _A("include/t20017_a.h"), "a1(int,int)"));
REQUIRE_THAT(src,
HasCall(_A("t20017.cc"), _A("include/t20017_a.h"), "a2(int,int)"));
REQUIRE_THAT(src,
HasCall(_A("t20017.cc"), _A("include/t20017_a.h"), "a3(int,int)"));
REQUIRE_THAT(src,
HasCall(_A("t20017.cc"), _A("include/t20017_b.h"), "b1(int,int)"));
REQUIRE_THAT(src,
HasCall(
_A("t20017.cc"), _A("include/t20017_b.h"), "b2<int>(int,int)"));
REQUIRE_THAT(src, HasExitpoint(_A("t20017.cc")));
save_mermaid(config.output_directory(), diagram->name + ".mmd", src);
}*/
}

View File

@@ -32,7 +32,6 @@ TEST_CASE("t20023")
{"A", "A", "a2()"}, //
{"A", "A", "a3()"}, //
{"A", "A", "a4()"}, //
}));
});
}

View File

@@ -26,83 +26,27 @@ TEST_CASE("t20030")
CHECK_SEQUENCE_DIAGRAM(config, diagram, *model, [](const auto &src) {
REQUIRE(MessageOrder(src,
{
//
// "clanguml::t20030::tmain(int)"
//
{"tmain(int)", "magic()", ""}, //
{"tmain(int)", "A", "A(int)"}, //
{"tmain(int)", "A", "operator+=(int)"}, //
{"A", "A", "add(int)"}, //
{"tmain(bool,int)", "A", "A()"}, //
// {"A", "A", "create()"}, //
// {"tmain(bool,int)", "A", "A()"}, //
// {"A", "A", "create()"}, //
// {"tmain(bool,int)", "A", "operator+=(int)"},
// //
// {"A", "A", "add(int)"}, //
// {"tmain(bool,int)", "A", "operator=(const A
// &)"}, //
// {"A", "A", "set(int)"}, //
// {"tmain(bool,int)", "A", "value() const"} //
//
// "clanguml::t20030::tmain(bool,int)"
//
{"tmain(bool,int)", "A", "A()"}, //
{"A", "A", "create()"}, //
{"tmain(bool,int)", "A", "A()"}, //
{"A", "A", "create()"}, //
{"tmain(bool,int)", "A", "operator+=(int)"}, //
//
{"A", "A", "add(int)"}, //
{"tmain(bool,int)", "A", "operator=(const A &)"}, //
{"A", "A", "set(int)"}, //
{"tmain(bool,int)", "A", "value() const"} //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
// Check if all calls exist
REQUIRE_THAT(src, HasCall(_A("tmain(int)"), _A("magic()"), ""));
REQUIRE_THAT(src, HasCall(_A("A"), _A("A"), "create()"));
REQUIRE_THAT(
src, HasCall(_A("tmain(int)"), _A("A"), "operator+=(int)"));
REQUIRE_THAT(src, HasCall(_A("A"), _A("A"), "add(int)"));
REQUIRE_THAT(src, HasCall(_A("tmain(bool,int)"), _A("A"), "A()"));
REQUIRE_THAT(
src, HasCall(_A("tmain(bool,int)"), _A("A"),
"operator+=(int)")); REQUIRE_THAT(src, HasCall(_A("A"), _A("A"),
"add(int)")); REQUIRE_THAT(src, HasCall(_A("tmain(bool,int)"), _A("A"),
"operator=(const A &)")); REQUIRE_THAT(src, HasCall(_A("A"), _A("A"),
"set(int)")); REQUIRE_THAT(src, HasCall(_A("tmain(bool,int)"), _A("A"),
"value()"));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
REQUIRE_THAT(src, HasCall(_A("tmain(int)"), _A("magic()"), ""));
REQUIRE_THAT(src, HasCall(_A("A"), _A("A"), "create()"));
REQUIRE_THAT(
src, HasCall(_A("tmain(int)"), _A("A"), "operator+=(int)"));
REQUIRE_THAT(src, HasCall(_A("A"), _A("A"), "add(int)"));
REQUIRE_THAT(src, HasCall(_A("tmain(bool,int)"), _A("A"), "A()"));
REQUIRE_THAT(
src, HasCall(_A("tmain(bool,int)"), _A("A"),
"operator+=(int)")); REQUIRE_THAT(src, HasCall(_A("A"), _A("A"),
"add(int)")); REQUIRE_THAT(src, HasCall(_A("tmain(bool,int)"), _A("A"),
"operator=(const A &)")); REQUIRE_THAT(src, HasCall(_A("A"), _A("A"),
"set(int)")); REQUIRE_THAT(src, HasCall(_A("tmain(bool,int)"), _A("A"),
"value()"));
save_mermaid(config.output_directory(), diagram->name + ".mmd",
src);
}*/
}

View File

@@ -31,73 +31,16 @@ TEST_CASE("t20031")
{"tmain(bool,int)", "execute(std::function<int ()>)", ""}, //
{"tmain(bool,int)", "A", "value() const"} //
}));
REQUIRE(!HasMessage(src, {"A", "A", "create()"}));
REQUIRE(!HasMessage(src, {"tmain(int)", "A", "operator+=(int)"}));
REQUIRE(!HasMessage(src, {"tmain(bool,int)", "A", "A()"}));
REQUIRE(!HasMessage(src, {"tmain(bool,int)", "A", "operator+=(int)"}));
REQUIRE(!HasMessage(src, {"A", "A", "add(int)"}));
REQUIRE(
!HasMessage(src, {"tmain(bool,int)", "A", "operator=(const A &)"}));
REQUIRE(!HasMessage(src, {"A", "A", "set(int)"}));
REQUIRE(!HasMessage(src,
{"tmain(bool,int)::(lambda ../../tests/t20031/t20031.cc:47:26)",
"zero()", ""}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
REQUIRE_THAT(src, HasCall(_A("tmain(int)"), _A("magic()"), ""));
REQUIRE_THAT(src, !HasCall(_A("A"), _A("A"), "create()"));
REQUIRE_THAT(
src, !HasCall(_A("tmain(int)"), _A("A"), "operator+=(int)"));
REQUIRE_THAT(src, !HasCall(_A("A"), _A("A"), "add(int)"));
REQUIRE_THAT(src, !HasCall(_A("tmain(bool,int)"), _A("A"), "A()"));
REQUIRE_THAT(
src, !HasCall(_A("tmain(bool,int)"), _A("A"), "operator+=(int)"));
REQUIRE_THAT(src, !HasCall(_A("A"), _A("A"), "add(int)"));
REQUIRE_THAT(src,
!HasCall(_A("tmain(bool,int)"), _A("A"), "operator=(const A &)"));
REQUIRE_THAT(src, !HasCall(_A("A"), _A("A"), "set(int)"));
REQUIRE_THAT(src, HasCall(_A("tmain(bool,int)"), _A("A"), "value()"));
REQUIRE_THAT(src,
!HasCall(_A("tmain(bool,int)::(lambda "
"../../tests/t20031/t20031.cc:47:26)"),
_A("zero()"), ""));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
REQUIRE_THAT(src, HasCall(_A("tmain(int)"), _A("magic()"), ""));
REQUIRE_THAT(src, !HasCall(_A("A"), _A("A"), "create()"));
REQUIRE_THAT(
src, !HasCall(_A("tmain(int)"), _A("A"), "operator+=(int)"));
REQUIRE_THAT(src, !HasCall(_A("A"), _A("A"), "add(int)"));
REQUIRE_THAT(src, !HasCall(_A("tmain(bool,int)"), _A("A"), "A()"));
REQUIRE_THAT(
src, !HasCall(_A("tmain(bool,int)"), _A("A"), "operator+=(int)"));
REQUIRE_THAT(src, !HasCall(_A("A"), _A("A"), "add(int)"));
REQUIRE_THAT(src,
!HasCall(_A("tmain(bool,int)"), _A("A"), "operator=(const A &)"));
REQUIRE_THAT(src, !HasCall(_A("A"), _A("A"), "set(int)"));
REQUIRE_THAT(src, HasCall(_A("tmain(bool,int)"), _A("A"), "value()"));
REQUIRE_THAT(src,
!HasCall(_A("tmain(bool,int)::(lambda "
"../../tests/t20031/t20031.cc:47:26)"),
_A("zero()"), ""));
save_mermaid(config.output_directory(), diagram->name + ".mmd", src);
}
*/
}
}

View File

@@ -37,83 +37,10 @@ TEST_CASE("t20032")
{"A", "B", "double", Response{}}, //
{"B", "tmain(int,char **)", "double", Response{}}, //
{"tmain(int,char **)", "B", "b(const char *)"}, //
{"B", "A", "a3(const char *)"}, //
{"A", "B", "const char *", Response{}}, //
{"tmain(int,char **)", "B", "b(const char *)"}, //
{"B", "A", "a3(const char *)"}, //
{"A", "B", "const char *", Response{}}, //
{"B", "tmain(int,char **)", "const char *", Response{}} //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
// Check if all calls exist
REQUIRE_THAT(src, HasCall(_A("tmain(int,char **)"), _A("B"), "b(int)"));
REQUIRE_THAT(
src, HasResponse(_A("tmain(int,char **)"), _A("B"), "int"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a1(int)"));
REQUIRE_THAT(src, HasResponse(_A("B"), _A("A"), "int"));
REQUIRE_THAT(
src, HasCall(_A("tmain(int,char **)"), _A("B"), "b(double)"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2(double)"));
REQUIRE_THAT(src, HasResponse(_A("B"), _A("A"), "double"));
REQUIRE_THAT(
src, HasCall(_A("tmain(int,char **)"), _A("B"), "b(const char *)"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a3(const char *)"));
REQUIRE_THAT(src, HasResponse(_A("B"), _A("A"), "const char *"));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
std::vector<int> messages = {
FindMessage(j, "tmain(int,char **)", "B", "b(int)", "int"),
FindMessage(j, "B", "A", "a1(int)", "int"),
FindMessage(j, "tmain(int,char **)", "B", "b(double)"),
FindMessage(j, "B", "A", "a2(double)"),
FindMessage(j, "tmain(int,char **)", "B", "b(const char *)"),
FindMessage(j, "B", "A", "a3(const char *)")};
REQUIRE(std::is_sorted(messages.begin(), messages.end()));
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
using mermaid::HasResponse;
REQUIRE_THAT(src, HasCall(_A("tmain(int,char **)"), _A("B"), "b(int)"));
REQUIRE_THAT(
src, HasResponse(_A("tmain(int,char **)"), _A("B"), "int"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a1(int)"));
REQUIRE_THAT(src, HasResponse(_A("B"), _A("A"), "int"));
REQUIRE_THAT(
src, HasCall(_A("tmain(int,char **)"), _A("B"), "b(double)"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2(double)"));
REQUIRE_THAT(src, HasResponse(_A("B"), _A("A"), "double"));
REQUIRE_THAT(
src, HasCall(_A("tmain(int,char **)"), _A("B"), "b(const char *)"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a3(const char *)"));
REQUIRE_THAT(src, HasResponse(_A("B"), _A("A"), "const char *"));
save_mermaid(config.output_directory(), diagram->name + ".mmd", src);
}*/
}

View File

@@ -52,50 +52,4 @@ TEST_CASE("t20033")
{"tmain()", "A", "a4()"} //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
// Check if all calls exist
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("A"), "a1()"));
REQUIRE_THAT(
src, HasCallInControlCondition(_A("tmain()"), _A("A"), "a2()"));
REQUIRE_THAT(
src, HasCallInControlCondition(_A("tmain()"), _A("A"), "a3()"));
REQUIRE_THAT(
src, HasCallInControlCondition(_A("tmain()"), _A("A"), "a4()"));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
using mermaid::HasCallInControlCondition;
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("A"), "a1()"));
REQUIRE_THAT(
src, HasCallInControlCondition(_A("tmain()"), _A("A"), "a2()"));
REQUIRE_THAT(
src, HasCallInControlCondition(_A("tmain()"), _A("A"), "a3()"));
REQUIRE_THAT(
src, HasCallInControlCondition(_A("tmain()"), _A("A"), "a4()"));
save_mermaid(config.output_directory(), diagram->name + ".mmd",
src);
}*/
}

View File

@@ -68,75 +68,7 @@ TEST_CASE("t20034")
{"C", "C", "c2()"}, //
{"C", "B", "b2()"}, //
{"B", "A", "a2()"} //
} //
} //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
// Check if all calls exist
REQUIRE_THAT(src, HasCall(_A("D"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("D"), _A("C"), "c3()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("C"), "c2()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("B"), "b2()"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("D"), _A("C"), "c4()"));
REQUIRE_THAT(src, !HasCall(_A("C"), _A("B"), "b3()"));
save_puml(config.output_directory(), diagram->name +
".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
REQUIRE(HasMessageChain(j,
{{"d2()", "c3()", "void"}, {"c3()", "c2()", "void"},
{"c2()", "b2()", "void"}, {"b2()", "a2()",
"void"}})); REQUIRE(HasMessageChain(j,
{{"d2()", "c4()", "void"}, {"c4()", "b4()", "void"},
{"b4()", "b2()", "void"}, {"b2()", "a2()",
"void"}})); REQUIRE(HasMessageChain(j, {{"d2()", "a2()",
"void"}})); REQUIRE(HasMessageChain(j,
{{"d2()", "c1()", "void"}, {"c1()", "b1()", "void"},
{"b1()", "a2()", "void"}}));
REQUIRE(HasMessageChain(j,
{{"d2()", "c2()", "void"}, {"c2()", "b2()", "void"},
{"b2()", "a2()", "void"}}));
save_json(config.output_directory(), diagram->name +
".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
REQUIRE_THAT(src, HasCall(_A("D"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("D"), _A("C"), "c3()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("C"), "c2()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("B"), "b2()"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("D"), _A("C"), "c4()"));
REQUIRE_THAT(src, !HasCall(_A("C"), _A("B"), "b3()"));
save_mermaid(config.output_directory(), diagram->name +
".mmd", src);
}
*/
}

View File

@@ -32,46 +32,4 @@ TEST_CASE("t20035")
{"b1(int)", "c(int)", ""} //
}}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
REQUIRE_THAT(src, HasCall(_A("tmain(int,char **)"), _A("a(int)"),
"")); REQUIRE_THAT(src, HasCall(_A("a(int)"), _A("b1(int)"), ""));
REQUIRE_THAT(src, HasCall(_A("b1(int)"), _A("c(int)"), ""));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
REQUIRE(HasMessageChain(j,
{{"tmain(int,char **)", "a(int)", "int"},
{"a(int)", "b1(int)", "int"}, {"b1(int)", "c(int)",
"int"}}));
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
REQUIRE_THAT(src, HasCall(_A("tmain(int,char **)"), _A("a(int)"),
"")); REQUIRE_THAT(src, HasCall(_A("a(int)"), _A("b1(int)"), ""));
REQUIRE_THAT(src, HasCall(_A("b1(int)"), _A("c(int)"), ""));
save_mermaid(config.output_directory(), diagram->name + ".mmd",
src);
}
*/
}

View File

@@ -67,68 +67,4 @@ TEST_CASE("t20036")
}, //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("C"), "c2()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("B"), "b2()"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("B"), "b2()"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("D"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("B"), "b1()"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2()"));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
REQUIRE(HasMessageChain(j,
{{"c3()", "c2()", "void"}, {"c2()", "b2()", "void"},
{"b2()", "a2()", "void"}}));
REQUIRE(HasMessageChain(
j, {{"c4()", "b2()", "void"}, {"b2()", "a2()", "void"}}));
REQUIRE(HasMessageChain(j, {{"d3()", "a2()", "void"}}));
REQUIRE(HasMessageChain(j,
{{"d1()", "c2()", "void"}, {"c2()", "b2()", "void"},
{"b2()", "a2()", "void"}}));
REQUIRE(HasMessageChain(
j, {{"c1()", "b1()", "void"}, {"b1()", "a2()", "void"}}));
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
REQUIRE_THAT(src, HasCall(_A("C"), _A("C"), "c2()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("B"), "b2()"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("B"), "b2()"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("D"), _A("A"), "a2()"));
REQUIRE_THAT(src, HasCall(_A("C"), _A("B"), "b1()"));
REQUIRE_THAT(src, HasCall(_A("B"), _A("A"), "a2()"));
save_mermaid(config.output_directory(), diagram->name + ".mmd",
src);
}*/
}

View File

@@ -53,107 +53,4 @@ TEST_CASE("t20038")
{"B", "A", "aaa()"}, //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("B"), "b()"));
REQUIRE_THAT(src, !HasCall(_A("tmain()"), _A("B"), "bb()"));
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("B"), "bbb()"));
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("B"), "bbbb()"));
REQUIRE_THAT(src,
HasMessageComment(_A("tmain()"),
"This comment should be rendered only\\n"
"once"));
REQUIRE_THAT(src,
HasCall(_A("tmain()"), _A("add_impl<double>(double,double)"),
""));
REQUIRE_THAT(
src, HasMessageComment(_A("tmain()"), "What is 2 \\+ 2\\?"));
REQUIRE_THAT(src,
!HasMessageComment(
_A("tmain()"), "This is specific for some_other_diagram"));
REQUIRE_THAT(
src, HasMessageComment(_A("tmain()"), "Calling
B::bbbbb\\(\\)"));
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("B"), "bbbbb()"));
REQUIRE_THAT(src,
HasMessageComment(_A("tmain()"), "This is a conditional
operator"));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
using mermaid::HasCallInControlCondition;
using mermaid::HasMessageComment;
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("B"), "b()"));
REQUIRE_THAT(src, !HasCall(_A("tmain()"), _A("B"), "bb()"));
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("B"), "bbb()"));
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("B"), "bbbb()"));
REQUIRE_THAT(src,
HasMessageComment(_A("tmain()"),
"This comment should be rendered only<br/>"
"once"));
REQUIRE_THAT(src,
HasCall(_A("tmain()"), _A("add_impl<double>(double,double)"),
""));
REQUIRE_THAT(
src, HasMessageComment(_A("tmain()"), "What is 2 \\+ 2\\?"));
REQUIRE_THAT(src,
!HasMessageComment(
_A("tmain()"), "This is specific for some_other_diagram"));
REQUIRE_THAT(
src, HasMessageComment(_A("tmain()"), "Calling
B::bbbbb\\(\\)"));
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("B"), "bbbbb()"));
REQUIRE_THAT(src,
!HasMessageComment(
_A("tmain()"), "This is specific for some_other_diagram"));
REQUIRE_THAT(
src, HasMessageComment(_A("tmain()"), "Calling
B::bbbbb\\(\\)"));
save_mermaid(config.output_directory(), diagram->name + ".mmd",
src);
}
*/
}

View File

@@ -31,54 +31,8 @@ TEST_CASE("t20039")
{"R", "A<int>", "a(int)"}, //
{"R", "A<int_vec_t>", "a(int_vec_t)"}, //
{"R", "A<string_vec_t>", "a(string_vec_t)"}, //
{"R", "A<int_map_t>", "a(int_map_t)"}, //
{"R", "A<int_map_t>", "a(int_map_t)"}, //
{"R", "A<string_map_t>", "a(string_map_t)"} //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
// Check if all calls exist
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("R"), "run()"));
REQUIRE_THAT(src, HasCall(_A("R"), _A("A<int>"), "a(int)"));
REQUIRE_THAT(src, HasCall(_A("R"), _A("A<int_vec_t>"), "a(int_vec_t)"));
REQUIRE_THAT(
src, HasCall(_A("R"), _A("A<string_vec_t>"), "a(string_vec_t)"));
REQUIRE_THAT(src, HasCall(_A("R"), _A("A<int_map_t>"), "a(int_map_t)"));
REQUIRE_THAT(
src, HasCall(_A("R"), _A("A<string_map_t>"), "a(string_map_t)"));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
REQUIRE_THAT(src, HasCall(_A("tmain()"), _A("R"), "run()"));
REQUIRE_THAT(src, HasCall(_A("R"), _A("A<int>"), "a(int)"));
REQUIRE_THAT(src, HasCall(_A("R"), _A("A<int_vec_t>"), "a(int_vec_t)"));
REQUIRE_THAT(
src, HasCall(_A("R"), _A("A<string_vec_t>"), "a(string_vec_t)"));
REQUIRE_THAT(src, HasCall(_A("R"), _A("A<int_map_t>"), "a(int_map_t)"));
REQUIRE_THAT(
src, HasCall(_A("R"), _A("A<string_map_t>"), "a(string_map_t)"));
save_mermaid(config.output_directory(), diagram->name + ".mmd", src);
}*/
}

View File

@@ -45,66 +45,4 @@ TEST_CASE("t20040")
{"print<int>(int)", "print()", ""}, //
}));
});
/*
{
auto src = generate_sequence_puml(diagram, *model);
AliasMatcher _A(src);
REQUIRE_THAT(src, StartsWith("@startuml"));
REQUIRE_THAT(src, EndsWith("@enduml\n"));
REQUIRE_THAT(src,
HasCall(_A("tmain()"),
_A("print<int,double,std::string>(int,double,std::string)"),
""));
REQUIRE_THAT(src,
HasCall(_A("print<int,double,std::string>(int,double,std::string)"),
_A("print<double,std::string>(double,std::string)"), ""));
REQUIRE_THAT(src,
HasCall(_A("print<double,std::string>(double,std::string)"),
_A("print<std::string>(std::string)"), ""));
REQUIRE_THAT(src,
HasCall(_A("print<std::string>(std::string)"), _A("print()"),
""));
save_puml(config.output_directory(), diagram->name + ".puml", src);
}
{
auto j = generate_sequence_json(diagram, *model);
using namespace json;
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto src = generate_sequence_mermaid(diagram, *model);
mermaid::SequenceDiagramAliasMatcher _A(src);
using mermaid::HasCall;
REQUIRE_THAT(src,
HasCall(_A("tmain()"),
_A("print<int,double,std::string>(int,double,std::string)"),
""));
REQUIRE_THAT(src,
HasCall(_A("print<int,double,std::string>(int,double,std::string)"),
_A("print<double,std::string>(double,std::string)"), ""));
REQUIRE_THAT(src,
HasCall(_A("print<double,std::string>(double,std::string)"),
_A("print<std::string>(std::string)"), ""));
REQUIRE_THAT(src,
HasCall(_A("print<std::string>(std::string)"), _A("print()"),
""));
save_mermaid(config.output_directory(), diagram->name + ".mmd",
src);
}*/
}

View File

@@ -49,8 +49,7 @@ TEST_CASE("t20046")
"t20046.cc:19:34)",
"operator()(auto &&) const"}, //
{"tmain()::(lambda t20046.cc:19:9)::(lambda t20046.cc:19:34)",
"a3(int)", ""}
"a3(int)", ""} //
}));
});
}

View File

@@ -33,7 +33,6 @@ TEST_CASE("t20047")
{"tmain()", "a4(int)", ""}, //
{"tmain()", "a5(int)", ""}, //
{"tmain()", "a6(int)", ""}, //
}));
});
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff