mirror of
https://github.com/bkryza/clang-uml.git
synced 2025-05-17 11:12:20 +08:00
Refactored config based test cases (#266)
This commit is contained in:
parent
6d3d1ae450
commit
5d69f5063a
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* tests/t90000/test_case.cc
|
||||
* tests/t90000/test_case.h
|
||||
*
|
||||
* Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com>
|
||||
*
|
||||
@ -16,40 +16,21 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
TEST_CASE("t90000", "[test-case][config]")
|
||||
TEST_CASE("t90000")
|
||||
{
|
||||
auto [config, db] = load_config("t90000");
|
||||
using namespace clanguml::test;
|
||||
|
||||
auto diagram = config.diagrams["t90000_class"];
|
||||
auto [config, db, diagram, model] =
|
||||
CHECK_CLASS_MODEL("t90000", "t90000_class");
|
||||
|
||||
auto model = generate_class_diagram(*db, diagram);
|
||||
|
||||
REQUIRE(model->name() == "t90000_class");
|
||||
|
||||
{
|
||||
auto puml = generate_class_puml(diagram, *model);
|
||||
AliasMatcher _A(puml);
|
||||
|
||||
REQUIRE_THAT(puml, StartsWith("@startuml"));
|
||||
REQUIRE_THAT(puml, EndsWith("@enduml\n"));
|
||||
|
||||
REQUIRE_THAT(puml, IsClass(_A("Foo")));
|
||||
REQUIRE_THAT(puml, IsClass(_A("Boo")));
|
||||
|
||||
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);
|
||||
}
|
||||
CHECK_CLASS_DIAGRAM(
|
||||
config, diagram, *model,
|
||||
[](const plantuml_t &src) {
|
||||
REQUIRE(IsClass(src, "Foo"));
|
||||
REQUIRE(IsClass(src, "Boo"));
|
||||
},
|
||||
[](const mermaid_t &src) {
|
||||
REQUIRE(IsClass(src, "Foo"));
|
||||
REQUIRE(IsClass(src, "Boo"));
|
||||
});
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* tests/t90001/test_case.cc
|
||||
* tests/t90001/test_case.h
|
||||
*
|
||||
* Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com>
|
||||
*
|
||||
@ -16,8 +16,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
TEST_CASE("t90001", "[test-case][config]")
|
||||
TEST_CASE("t90001")
|
||||
{
|
||||
using namespace clanguml::test;
|
||||
using clanguml::error::empty_diagram_error;
|
||||
|
||||
auto [config, db] = load_config("t90001");
|
||||
@ -31,12 +32,12 @@ TEST_CASE("t90001", "[test-case][config]")
|
||||
|
||||
REQUIRE(model->name() == "t90001_class");
|
||||
|
||||
REQUIRE_THROWS_AS(render_class_diagram<plantuml_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_class_diagram<mermaid_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_class_puml(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_class_json(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_class_mermaid(diagram, *model), empty_diagram_error);
|
||||
render_class_diagram<json_t>(diagram, *model), empty_diagram_error);
|
||||
}
|
||||
|
||||
{
|
||||
@ -48,12 +49,12 @@ TEST_CASE("t90001", "[test-case][config]")
|
||||
|
||||
REQUIRE(model->name() == "t90001_sequence");
|
||||
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_sequence_puml(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_sequence_json(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_sequence_mermaid(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_sequence_diagram<plantuml_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_sequence_diagram<mermaid_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_sequence_diagram<json_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
}
|
||||
|
||||
{
|
||||
@ -65,12 +66,12 @@ TEST_CASE("t90001", "[test-case][config]")
|
||||
|
||||
REQUIRE(model->name() == "t90001_package");
|
||||
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_package_puml(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_package_json(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_package_mermaid(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_package_diagram<plantuml_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_package_diagram<mermaid_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_package_diagram<json_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
}
|
||||
|
||||
{
|
||||
@ -82,11 +83,11 @@ TEST_CASE("t90001", "[test-case][config]")
|
||||
|
||||
REQUIRE(model->name() == "t90001_include");
|
||||
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_include_puml(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_include_json(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(
|
||||
generate_include_mermaid(diagram, *model), empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_include_diagram<plantuml_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_include_diagram<mermaid_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
REQUIRE_THROWS_AS(render_include_diagram<json_t>(diagram, *model),
|
||||
empty_diagram_error);
|
||||
}
|
||||
}
|
||||
|
@ -1266,15 +1266,12 @@ template <> bool IsClass(json_t d, std::string name)
|
||||
#include "t40001/test_case.h"
|
||||
#include "t40002/test_case.h"
|
||||
#include "t40003/test_case.h"
|
||||
/*
|
||||
|
||||
|
||||
///
|
||||
/// Other tests (e.g. configuration file)
|
||||
///
|
||||
#include "t90000/test_case.h"
|
||||
#include "t90001/test_case.h"
|
||||
*/
|
||||
|
||||
///
|
||||
/// Main test function
|
||||
|
@ -51,14 +51,6 @@ using namespace clanguml::util;
|
||||
std::pair<clanguml::config::config, clanguml::common::compilation_database_ptr>
|
||||
load_config(const std::string &test_name);
|
||||
|
||||
// std::string generate_sequence_puml(
|
||||
// std::shared_ptr<clanguml::config::diagram> config,
|
||||
// clanguml::sequence_diagram::model::diagram &model);
|
||||
//
|
||||
// std::string generate_class_puml(
|
||||
// std::shared_ptr<clanguml::config::diagram> config,
|
||||
// clanguml::class_diagram::model::diagram &model);
|
||||
|
||||
void save_puml(const std::string &path, const std::string &puml);
|
||||
|
||||
namespace clanguml::test {
|
||||
|
Loading…
x
Reference in New Issue
Block a user