Added test case for sequence diagram with nested classes (#287)
This commit is contained in:
12
tests/t20054/.clang-uml
Normal file
12
tests/t20054/.clang-uml
Normal file
@@ -0,0 +1,12 @@
|
||||
diagrams:
|
||||
t20054_sequence:
|
||||
type: sequence
|
||||
glob:
|
||||
- t20054.cc
|
||||
include:
|
||||
namespaces:
|
||||
- clanguml::t20054
|
||||
using_namespace: clanguml::t20054
|
||||
from:
|
||||
- function: "clanguml::t20054::tmain()"
|
||||
- function: "clanguml::t20054::A::AA::bb()"
|
||||
35
tests/t20054/t20054.cc
Normal file
35
tests/t20054/t20054.cc
Normal file
@@ -0,0 +1,35 @@
|
||||
namespace clanguml {
|
||||
namespace t20054 {
|
||||
|
||||
struct A {
|
||||
struct AA {
|
||||
struct AAA {
|
||||
int aaa() { return 3; }
|
||||
};
|
||||
|
||||
struct BBB {
|
||||
int bbb() { return 4; }
|
||||
};
|
||||
|
||||
int aa() { return aaa.aaa(); }
|
||||
|
||||
int bb() { return bbb.bbb(); }
|
||||
|
||||
AAA aaa;
|
||||
BBB bbb;
|
||||
};
|
||||
|
||||
void a() { aa.aa(); }
|
||||
|
||||
AA aa;
|
||||
};
|
||||
|
||||
void tmain()
|
||||
{
|
||||
A a;
|
||||
|
||||
a.a();
|
||||
}
|
||||
|
||||
} // namespace t20054
|
||||
} // namespace clanguml
|
||||
35
tests/t20054/test_case.h
Normal file
35
tests/t20054/test_case.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* tests/t20054/test_case.h
|
||||
*
|
||||
* Copyright (c) 2021-2024 Bartek Kryza <bkryza@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
TEST_CASE("t20054")
|
||||
{
|
||||
using namespace clanguml::test;
|
||||
using namespace std::string_literals;
|
||||
|
||||
auto [config, db, diagram, model] =
|
||||
CHECK_SEQUENCE_MODEL("t20054", "t20054_sequence");
|
||||
|
||||
CHECK_SEQUENCE_DIAGRAM(config, diagram, *model, [](const auto &src) {
|
||||
REQUIRE(MessageOrder(src,
|
||||
{{"tmain()", "A", "a()"}, {"A", "A::AA", "aa()"},
|
||||
{"A::AA", "A::AA::AAA", "aaa()"},
|
||||
|
||||
{Entrypoint{}, "A::AA", "bb()"},
|
||||
{"A::AA", "A::AA::BBB", "bbb()"}}));
|
||||
});
|
||||
}
|
||||
@@ -610,6 +610,7 @@ void CHECK_INCLUDE_DIAGRAM(const clanguml::config::config &config,
|
||||
|
||||
#include "t20052/test_case.h"
|
||||
#include "t20053/test_case.h"
|
||||
#include "t20054/test_case.h"
|
||||
|
||||
///
|
||||
/// Package diagram tests
|
||||
|
||||
@@ -382,6 +382,9 @@ test_cases:
|
||||
- name: t20053
|
||||
title: Test case for inlining nested lambda operator calls
|
||||
description:
|
||||
- name: t20054
|
||||
title: Test case for sequence diagram with nested classes
|
||||
description:
|
||||
Package diagrams:
|
||||
- name: t30001
|
||||
title: Basic package diagram test case
|
||||
|
||||
Reference in New Issue
Block a user