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, 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(
|
||||
"./" + 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::Const;
|
||||
using clanguml::test::matchers::Default;
|
||||
using clanguml::test::matchers::HasCall;
|
||||
using clanguml::test::matchers::HasCallWithResponse;
|
||||
using clanguml::test::matchers::IsAbstractClass;
|
||||
using clanguml::test::matchers::IsBaseClass;
|
||||
using clanguml::test::matchers::IsClass;
|
||||
|
||||
@@ -143,6 +143,53 @@ struct Default {
|
||||
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,
|
||||
CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user