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
No known key found for this signature in database
GPG Key ID: 241B25F44E85B4D7
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>
*
@ -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"));
});
}

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>
*
@ -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);
}
}

View File

@ -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

View File

@ -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 {