Added sequence diagram catch matchers
This commit is contained in:
@@ -47,6 +47,11 @@ TEST_CASE("Test t00001", "[unit-test]")
|
|||||||
REQUIRE_THAT(puml, StartsWith("@startuml"));
|
REQUIRE_THAT(puml, StartsWith("@startuml"));
|
||||||
REQUIRE_THAT(puml, EndsWith("@enduml\n"));
|
REQUIRE_THAT(puml, EndsWith("@enduml\n"));
|
||||||
|
|
||||||
|
REQUIRE_THAT(puml, HasCall("A", "log_result"));
|
||||||
|
REQUIRE_THAT(puml, HasCall("B", "A", "log_result"));
|
||||||
|
REQUIRE_THAT(puml, HasCallWithResponse("B", "A", "add3"));
|
||||||
|
REQUIRE_THAT(puml, HasCall("A", "add"));
|
||||||
|
|
||||||
save_puml(
|
save_puml(
|
||||||
"./" + config.output_directory + "/" + diagram->name + ".puml", puml);
|
"./" + config.output_directory + "/" + diagram->name + ".puml", puml);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ void save_puml(const std::string &path, const std::string &puml)
|
|||||||
using clanguml::test::matchers::Abstract;
|
using clanguml::test::matchers::Abstract;
|
||||||
using clanguml::test::matchers::Const;
|
using clanguml::test::matchers::Const;
|
||||||
using clanguml::test::matchers::Default;
|
using clanguml::test::matchers::Default;
|
||||||
|
using clanguml::test::matchers::HasCall;
|
||||||
|
using clanguml::test::matchers::HasCallWithResponse;
|
||||||
using clanguml::test::matchers::IsAbstractClass;
|
using clanguml::test::matchers::IsAbstractClass;
|
||||||
using clanguml::test::matchers::IsBaseClass;
|
using clanguml::test::matchers::IsBaseClass;
|
||||||
using clanguml::test::matchers::IsClass;
|
using clanguml::test::matchers::IsClass;
|
||||||
|
|||||||
@@ -143,6 +143,53 @@ struct Default {
|
|||||||
std::string m_method;
|
std::string m_method;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct HasCallWithResultMatcher : ContainsMatcher {
|
||||||
|
HasCallWithResultMatcher(
|
||||||
|
CasedString const &comparator, CasedString const &resultComparator)
|
||||||
|
: ContainsMatcher(comparator)
|
||||||
|
, m_resultComparator{resultComparator}
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool match(std::string const &source) const override
|
||||||
|
{
|
||||||
|
return Catch::contains(
|
||||||
|
m_comparator.adjustString(source), m_comparator.m_str) &&
|
||||||
|
Catch::contains(
|
||||||
|
m_comparator.adjustString(source), m_resultComparator.m_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
CasedString m_resultComparator;
|
||||||
|
};
|
||||||
|
|
||||||
|
ContainsMatcher HasCall(std::string const &from, std::string const &message,
|
||||||
|
CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes)
|
||||||
|
{
|
||||||
|
return ContainsMatcher(
|
||||||
|
CasedString(fmt::format("\"{}\" -> \"{}\" : {}()", from, from, message),
|
||||||
|
caseSensitivity));
|
||||||
|
}
|
||||||
|
|
||||||
|
ContainsMatcher HasCall(std::string const &from, std::string const &to,
|
||||||
|
std::string const &message,
|
||||||
|
CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes)
|
||||||
|
{
|
||||||
|
return ContainsMatcher(
|
||||||
|
CasedString(fmt::format("\"{}\" -> \"{}\" : {}()", from, to, message),
|
||||||
|
caseSensitivity));
|
||||||
|
}
|
||||||
|
|
||||||
|
auto HasCallWithResponse(std::string const &from, std::string const &to,
|
||||||
|
std::string const &message,
|
||||||
|
CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes)
|
||||||
|
{
|
||||||
|
return HasCallWithResultMatcher(
|
||||||
|
CasedString(fmt::format("\"{}\" -> \"{}\" : {}()", from, to, message),
|
||||||
|
caseSensitivity),
|
||||||
|
CasedString(
|
||||||
|
fmt::format("\"{}\" --> \"{}\"", to, from), caseSensitivity));
|
||||||
|
}
|
||||||
|
|
||||||
ContainsMatcher IsClass(std::string const &str,
|
ContainsMatcher IsClass(std::string const &str,
|
||||||
CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes)
|
CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user