diff --git a/docs/test_cases.md b/docs/test_cases.md index e1a3c974..8f06dcc2 100644 --- a/docs/test_cases.md +++ b/docs/test_cases.md @@ -27,6 +27,9 @@ * [t00026](./test_cases/t00026.md) - Template memento pattern * [t00027](./test_cases/t00027.md) - Template decorator pattern * [t00028](./test_cases/t00028.md) - PlantUML note decorator test case + * [t00029](./test_cases/t00029.md) - PlantUML skip decorator test case + * [t00030](./test_cases/t00030.md) - PlantUML relationship decorators test case + * [t00031](./test_cases/t00031.md) - PlantUML style decorator test case ## Sequence diagrams * [t20001](./test_cases/t20001.md) - Basic sequence diagram ## Configuration diagrams diff --git a/docs/test_cases/t00029.md b/docs/test_cases/t00029.md new file mode 100644 index 00000000..e3bc3974 --- /dev/null +++ b/docs/test_cases/t00029.md @@ -0,0 +1,77 @@ +# t00029 - PlantUML skip decorator test case +## Config +```yaml +compilation_database_dir: .. +output_directory: puml +diagrams: + t00029_class: + type: class + glob: + - ../../tests/t00029/t00029.cc + using_namespace: + - clanguml::t00029 + include: + namespaces: + - clanguml::t00029 + +``` +## Source code +File t00029.cc +```cpp +#include +#include + +namespace clanguml { +namespace t00029 { + +class A { +}; + +/// \uml{skip} +class B { +}; + +template class C { + T param; +}; + +/// @uml{skip:t00029_class} +template class D { + T param; +}; + +enum class E { one, two, three }; + +/// \uml{skip} +enum class F { red, green, blue }; + +class G1 { +}; + +class G2 { +}; + +class G3 { +}; + +class G4 { +}; + +struct R { + G1 g1; + + /// \uml{skip} + G2 g2; + + /// \uml{skiprelationship} + G3 &g3; + + std::shared_ptr g4; +}; + +} // namespace t00029 +} // namespace clanguml + +``` +## Generated UML diagrams +![t00029_class](./t00029_class.png "PlantUML skip decorator test case") diff --git a/docs/test_cases/t00029_class.png b/docs/test_cases/t00029_class.png new file mode 100644 index 00000000..558f2fbf Binary files /dev/null and b/docs/test_cases/t00029_class.png differ diff --git a/docs/test_cases/t00030.md b/docs/test_cases/t00030.md new file mode 100644 index 00000000..d8634e82 --- /dev/null +++ b/docs/test_cases/t00030.md @@ -0,0 +1,58 @@ +# t00030 - PlantUML relationship decorators test case +## Config +```yaml +compilation_database_dir: .. +output_directory: puml +diagrams: + t00030_class: + type: class + glob: + - ../../tests/t00030/t00030.cc + using_namespace: + - clanguml::t00030 + include: + namespaces: + - clanguml::t00030 + +``` +## Source code +File t00030.cc +```cpp +#include +#include + +namespace clanguml { +namespace t00030 { + +class A { +}; + +class B { +}; + +class C { +}; + +class D { +}; + +struct R { + /// @uml{association[]} + A aaa; + + /// @uml{composition[0..1:1..*]} + std::vector bbb; + + /// @uml{aggregation[0..1:1..5]} + std::vector ccc; + + /// @uml{association[:1]} + D ddd; +}; + +} // namespace t00030 +} // namespace clanguml + +``` +## Generated UML diagrams +![t00030_class](./t00030_class.png "PlantUML relationship decorators test case") diff --git a/docs/test_cases/t00030_class.png b/docs/test_cases/t00030_class.png new file mode 100644 index 00000000..5d84d803 Binary files /dev/null and b/docs/test_cases/t00030_class.png differ diff --git a/docs/test_cases/t00031.md b/docs/test_cases/t00031.md new file mode 100644 index 00000000..6785ed47 --- /dev/null +++ b/docs/test_cases/t00031.md @@ -0,0 +1,66 @@ +# t00031 - PlantUML style decorator test case +## Config +```yaml +compilation_database_dir: .. +output_directory: puml +diagrams: + t00031_class: + type: class + glob: + - ../../tests/t00031/t00031.cc + using_namespace: + - clanguml::t00031 + include: + namespaces: + - clanguml::t00031 + +``` +## Source code +File t00031.cc +```cpp +#include +#include + +namespace clanguml { +namespace t00031 { + +/// @uml{style[#back:lightgreen|yellow;header:blue/red]} +class A { +}; + +/// @uml{style[#line.dotted:blue]} +enum B { + one, + two, + three +}; + +/// @uml{style[#pink;line:red;line.bold;text:red]} +template class C { + T ttt; +}; + +class D { +}; + +struct R { + /// @uml{style[#red,dashed,thickness=2]} + A *aaa; + + /// @uml{composition} + /// @uml{style[#green,dashed,thickness=4]} + std::vector bbb; + + /// @uml{style[#blue,dotted,thickness=8]} + C ccc; + + /// @uml{style[#blue,plain,thickness=16]} + D *ddd; +}; + +} // namespace t00031 +} // namespace clanguml + +``` +## Generated UML diagrams +![t00031_class](./t00031_class.png "PlantUML style decorator test case") diff --git a/docs/test_cases/t00031_class.png b/docs/test_cases/t00031_class.png new file mode 100644 index 00000000..bf83fe3e Binary files /dev/null and b/docs/test_cases/t00031_class.png differ diff --git a/tests/test_cases.yaml b/tests/test_cases.yaml index ce369e04..a34689f6 100644 --- a/tests/test_cases.yaml +++ b/tests/test_cases.yaml @@ -81,6 +81,15 @@ test_cases: - name: t00028 title: PlantUML note decorator test case description: + - name: t00029 + title: PlantUML skip decorator test case + description: + - name: t00030 + title: PlantUML relationship decorators test case + description: + - name: t00031 + title: PlantUML style decorator test case + description: Sequence diagrams: - name: t20001 title: Basic sequence diagram