Added package diagram test case with C++20 module partitions dependencies

This commit is contained in:
Bartek Kryza
2023-12-24 16:47:19 +01:00
parent 453f265feb
commit 637112cea5
39 changed files with 545 additions and 62 deletions

View File

@@ -21,6 +21,7 @@
#include "class_diagram/model/class.h"
#include "common/model/namespace.h"
#include "common/model/package.h"
#include "common/model/template_parameter.h"
TEST_CASE("Test namespace_", "[unit-test]")
@@ -407,3 +408,53 @@ TEST_CASE(
CHECK(tp1.calculate_specialization_match(tp2) == 0);
}
}
TEST_CASE("Test common::model::package full_name", "[unit-test]")
{
using clanguml::common::model::package;
using clanguml::common::model::path;
using clanguml::common::model::path_type;
{
auto using_namespace = path{"A::B::C"};
auto pkg = package(using_namespace);
pkg.set_name("G");
pkg.set_namespace(path{"A::B::C::D::E::F"});
CHECK(pkg.full_name(false) == "A::B::C::D::E::F::G");
CHECK(pkg.full_name(true) == "D::E::F::G");
CHECK(pkg.doxygen_link().value() ==
"namespaceA_1_1B_1_1C_1_1D_1_1E_1_1F_1_1G.html");
}
{
auto using_namespace = path{"/A/B/C", path_type::kFilesystem};
auto pkg = package(using_namespace, path_type::kFilesystem);
pkg.set_name("G");
pkg.set_namespace(path{"/A/B/C/D/E/F", path_type::kFilesystem});
CHECK(pkg.full_name(false) == "A/B/C/D/E/F/G");
CHECK(pkg.full_name(true) == "D/E/F/G");
}
{
auto using_namespace = path{"A.B.C", path_type::kModule};
auto pkg = package(using_namespace, path_type::kModule);
pkg.set_name("G");
pkg.set_namespace(path{"A.B.C.D:E.F", path_type::kModule});
CHECK(pkg.full_name(false) == "A.B.C.D:E.F.G");
CHECK(pkg.full_name(true) == "D:E.F.G");
}
{
auto using_namespace = path{"A.B.C", path_type::kModule};
auto pkg = package(using_namespace, path_type::kModule);
pkg.set_name(":D");
pkg.set_namespace(path{"A.B.C", path_type::kModule});
CHECK(pkg.full_name(false) == "A.B.C:D");
CHECK(pkg.full_name(true) == ":D");
}
}