Refactored config based test cases (#266)

This commit is contained in:
Bartek Kryza
2024-05-14 17:47:37 +02:00
parent 6d3d1ae450
commit 5d69f5063a
4 changed files with 41 additions and 70 deletions

View File

@@ -1,5 +1,5 @@
/** /**
* tests/t90000/test_case.cc * tests/t90000/test_case.h
* *
* Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com> * Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com>
* *
@@ -16,40 +16,21 @@
* limitations under the License. * 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); CHECK_CLASS_DIAGRAM(
config, diagram, *model,
REQUIRE(model->name() == "t90000_class"); [](const plantuml_t &src) {
REQUIRE(IsClass(src, "Foo"));
{ REQUIRE(IsClass(src, "Boo"));
auto puml = generate_class_puml(diagram, *model); },
AliasMatcher _A(puml); [](const mermaid_t &src) {
REQUIRE(IsClass(src, "Foo"));
REQUIRE_THAT(puml, StartsWith("@startuml")); REQUIRE(IsClass(src, "Boo"));
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);
}
} }

View File

@@ -1,5 +1,5 @@
/** /**
* tests/t90001/test_case.cc * tests/t90001/test_case.h
* *
* Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com> * Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com>
* *
@@ -16,8 +16,9 @@
* limitations under the License. * limitations under the License.
*/ */
TEST_CASE("t90001", "[test-case][config]") TEST_CASE("t90001")
{ {
using namespace clanguml::test;
using clanguml::error::empty_diagram_error; using clanguml::error::empty_diagram_error;
auto [config, db] = load_config("t90001"); auto [config, db] = load_config("t90001");
@@ -31,12 +32,12 @@ TEST_CASE("t90001", "[test-case][config]")
REQUIRE(model->name() == "t90001_class"); 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( REQUIRE_THROWS_AS(
generate_class_puml(diagram, *model), empty_diagram_error); render_class_diagram<json_t>(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);
} }
{ {
@@ -48,12 +49,12 @@ TEST_CASE("t90001", "[test-case][config]")
REQUIRE(model->name() == "t90001_sequence"); REQUIRE(model->name() == "t90001_sequence");
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_sequence_diagram<plantuml_t>(diagram, *model),
generate_sequence_puml(diagram, *model), empty_diagram_error); empty_diagram_error);
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_sequence_diagram<mermaid_t>(diagram, *model),
generate_sequence_json(diagram, *model), empty_diagram_error); empty_diagram_error);
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_sequence_diagram<json_t>(diagram, *model),
generate_sequence_mermaid(diagram, *model), empty_diagram_error); empty_diagram_error);
} }
{ {
@@ -65,12 +66,12 @@ TEST_CASE("t90001", "[test-case][config]")
REQUIRE(model->name() == "t90001_package"); REQUIRE(model->name() == "t90001_package");
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_package_diagram<plantuml_t>(diagram, *model),
generate_package_puml(diagram, *model), empty_diagram_error); empty_diagram_error);
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_package_diagram<mermaid_t>(diagram, *model),
generate_package_json(diagram, *model), empty_diagram_error); empty_diagram_error);
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_package_diagram<json_t>(diagram, *model),
generate_package_mermaid(diagram, *model), empty_diagram_error); empty_diagram_error);
} }
{ {
@@ -82,11 +83,11 @@ TEST_CASE("t90001", "[test-case][config]")
REQUIRE(model->name() == "t90001_include"); REQUIRE(model->name() == "t90001_include");
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_include_diagram<plantuml_t>(diagram, *model),
generate_include_puml(diagram, *model), empty_diagram_error); empty_diagram_error);
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_include_diagram<mermaid_t>(diagram, *model),
generate_include_json(diagram, *model), empty_diagram_error); empty_diagram_error);
REQUIRE_THROWS_AS( REQUIRE_THROWS_AS(render_include_diagram<json_t>(diagram, *model),
generate_include_mermaid(diagram, *model), empty_diagram_error); empty_diagram_error);
} }
} }

View File

@@ -1266,15 +1266,12 @@ template <> bool IsClass(json_t d, std::string name)
#include "t40001/test_case.h" #include "t40001/test_case.h"
#include "t40002/test_case.h" #include "t40002/test_case.h"
#include "t40003/test_case.h" #include "t40003/test_case.h"
/*
/// ///
/// Other tests (e.g. configuration file) /// Other tests (e.g. configuration file)
/// ///
#include "t90000/test_case.h" #include "t90000/test_case.h"
#include "t90001/test_case.h" #include "t90001/test_case.h"
*/
/// ///
/// Main test function /// Main test function

View File

@@ -51,14 +51,6 @@ using namespace clanguml::util;
std::pair<clanguml::config::config, clanguml::common::compilation_database_ptr> std::pair<clanguml::config::config, clanguml::common::compilation_database_ptr>
load_config(const std::string &test_name); 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); void save_puml(const std::string &path, const std::string &puml);
namespace clanguml::test { namespace clanguml::test {