Fixed handling of enums in class diagram context filter (#275)

This commit is contained in:
Bartek Kryza
2024-05-31 19:09:28 +02:00
parent 9ad5336d83
commit 1283364ef4
6 changed files with 69 additions and 42 deletions

View File

@@ -10,6 +10,8 @@ diagrams:
- clanguml::t00041
context:
- clanguml::t00041::RR
- clanguml::t00041::Color
- clanguml::t00041::T::Direction
subclasses:
- clanguml::t00041::ns1::N
exclude:

View File

@@ -29,6 +29,10 @@ struct RR : public R {
F *f;
detail::G *g;
enum K { One, Two, Three };
K k;
void foo(H *h) { }
};
@@ -42,4 +46,15 @@ struct NN : public N { };
struct NM : public N { };
}
enum class Color { Red, Green, Blue };
struct S {
Color c;
};
struct T {
enum class Direction { Left, Right };
Direction d;
};
} // namespace clanguml::t00041

View File

@@ -40,10 +40,16 @@ TEST_CASE("t00041")
REQUIRE(IsClass(src, "RRR"));
REQUIRE(!IsClass(src, "detail::G"));
REQUIRE(!IsClass(src, "H"));
REQUIRE(IsClass(src, "S"));
REQUIRE(IsClass(src, "T"));
REQUIRE(IsBaseClass(src, "R", "RR"));
REQUIRE(IsBaseClass(src, "RR", "RRR"));
REQUIRE(IsEnum(src, "RR::K"));
REQUIRE(IsEnum(src, "Color"));
REQUIRE(IsEnum(src, "T::Direction"));
REQUIRE(IsAssociation<Public>(src, "D", "RR", "rr"));
REQUIRE(IsAssociation<Public>(src, "RR", "E", "e"));
REQUIRE(IsAssociation<Public>(src, "RR", "F", "f"));
@@ -54,5 +60,8 @@ TEST_CASE("t00041")
REQUIRE(IsClass(src, {"ns1", "NM"}));
REQUIRE(IsBaseClass(src, "ns1::N", "ns1::NN"));
REQUIRE(IsBaseClass(src, "ns1::N", "ns1::NM"));
REQUIRE(IsInnerClass(src, "T", "T::Direction"));
REQUIRE(IsAggregation<Public>(src, "S", "Color", "c"));
});
}