Sen API
Sen Libraries
Toggle main menu visibility
Loading...
Searching...
No Matches
db_test_helpers.h
Go to the documentation of this file.
1
// === db_test_helpers.h ===============================================================================================
2
// Sen Infrastructure
3
// Released under the Apache License v2.0 (SPDX-License-Identifier Apache-2.0).
4
// See the LICENSE.txt file for more information.
5
// © Airbus SAS, Airbus Helicopters, and Airbus Defence and Space SAU/GmbH/SAS.
6
// =====================================================================================================================
7
8
// === db_test_helpers.h ===============================================================================================
9
// Sen Infrastructure
10
// Released under the Apache License v2.0 (SPDX-License-Identifier Apache-2.0).
11
// See the LICENSE.txt file for more information.
12
// © Airbus SAS, Airbus Helicopters, and Airbus Defence and Space SAU/GmbH/SAS.
13
// =====================================================================================================================
14
15
#ifndef SEN_DB_TEST_HELPERS_H
16
#define SEN_DB_TEST_HELPERS_H
17
18
// shared test helpers
19
#include "sen/test_support/archive_test_helpers.h"
20
21
// sen
22
#include "
sen/core/base/compiler_macros.h
"
23
#include "
sen/kernel/component.h
"
24
#include "
sen/kernel/component_api.h
"
25
#include "
sen/kernel/test_kernel.h
"
26
27
// generated code
28
#include "stl/db_test_class.stl.h"
29
30
// std
31
#include <chrono>
32
#include <memory>
33
#include <string>
34
35
namespace
sen::db::test
36
{
37
38
using
sen::test::firstEventId;
39
using
sen::test::firstPropertyId;
40
using
sen::test::makeArchivePath;
41
using
sen::test::makeArchiveSettings;
42
using
sen::test::makeObjectInfo;
43
using
sen::test::makeTime;
44
using
sen::test::TempDir;
45
46
class
TestObjImpl
:
public
db_test::TestObjBase
47
{
48
public
:
49
SEN_NOCOPY_NOMOVE(
TestObjImpl
)
50
using
TestObjBase::TestObjBase;
51
~TestObjImpl
()
override
=
default
;
52
using
TestObjBase::valueChanged;
53
};
54
55
struct
SingleClassSetup
56
{
57
std::shared_ptr<TestObjImpl>
object
;
// NOLINT(misc-non-private-member-variables-in-classes)
58
sen::kernel::TestComponent
component
;
// NOLINT(misc-non-private-member-variables-in-classes)
59
std::unique_ptr<sen::kernel::TestKernel>
kernel
;
// NOLINT(misc-non-private-member-variables-in-classes)
60
61
SingleClassSetup
()
62
{
63
object
= std::make_shared<TestObjImpl>(
"testObj"
,
sen::VarMap
{});
64
component
.onInit(
65
[
this
](
sen::kernel::InitApi
&& api) ->
sen::kernel::PassResult
66
{
67
auto
source = api.getSource(
"local.test"
);
68
source->add(
object
);
69
return
sen::kernel::done
();
70
});
71
component
.onRun([](
auto
& api) {
return
api.execLoop(std::chrono::seconds(1), []() {}); });
72
kernel
= std::make_unique<sen::kernel::TestKernel>(&
component
);
73
kernel
->step();
74
}
75
};
76
77
class
OtherObjImpl
:
public
db_test::OtherObjBase
78
{
79
public
:
80
SEN_NOCOPY_NOMOVE(
OtherObjImpl
)
81
using
OtherObjBase::OtherObjBase;
82
~OtherObjImpl
()
override
=
default
;
83
};
84
85
struct
DualClassSetup
86
{
87
std::shared_ptr<TestObjImpl>
testObject
;
// NOLINT(misc-non-private-member-variables-in-classes)
88
std::shared_ptr<OtherObjImpl>
otherObject
;
// NOLINT(misc-non-private-member-variables-in-classes)
89
sen::kernel::TestComponent
component
;
// NOLINT(misc-non-private-member-variables-in-classes)
90
std::unique_ptr<sen::kernel::TestKernel>
kernel
;
// NOLINT(misc-non-private-member-variables-in-classes)
91
92
DualClassSetup
()
93
{
94
testObject
= std::make_shared<TestObjImpl>(
"testObj"
,
sen::VarMap
{});
95
otherObject
= std::make_shared<OtherObjImpl>(
"otherObj"
,
sen::VarMap
{});
96
component
.onInit(
97
[
this
](
sen::kernel::InitApi
&& api) ->
sen::kernel::PassResult
98
{
99
auto
source = api.getSource(
"local.test"
);
100
source->add(
testObject
);
101
source->add(
otherObject
);
102
return
sen::kernel::done
();
103
});
104
component
.onRun([](
auto
& api) {
return
api.execLoop(std::chrono::seconds(1), []() {}); });
105
kernel
= std::make_unique<sen::kernel::TestKernel>(&
component
);
106
kernel
->step();
107
}
108
};
109
}
// namespace sen::db::test
110
111
#endif
// SEN_DB_TEST_HELPERS_H
sen::db::test::OtherObjImpl
Definition
db_test_helpers.h:78
sen::db::test::OtherObjImpl::~OtherObjImpl
~OtherObjImpl() override=default
sen::db::test::TestObjImpl
Definition
db_test_helpers.h:47
sen::db::test::TestObjImpl::~TestObjImpl
~TestObjImpl() override=default
sen::kernel::InitApi
What can be done when initializing a component.
Definition
component_api.h:458
sen::kernel::TestComponent
Convenience class for using lambdas instead of inheritance when defining test components.
Definition
test_kernel.h:58
compiler_macros.h
component.h
component_api.h
sen::VarMap
std::map< std::string, Var, std::less<> > VarMap
A map of vars to represent structures.
Definition
var.h:107
sen::db::test
Definition
db_test_helpers.h:36
sen::kernel::done
PassResult done()
Convenience helper for doing sen::Ok(sen::kernel::OpState {sen::kernel::OpFinished {}...
Definition
component.h:25
sen::kernel::PassResult
Result< OpState, ExecError > PassResult
The result of operations that may be called multiple times.
Definition
component_api.h:64
sen::db::test::DualClassSetup::kernel
std::unique_ptr< sen::kernel::TestKernel > kernel
Definition
db_test_helpers.h:90
sen::db::test::DualClassSetup::DualClassSetup
DualClassSetup()
Definition
db_test_helpers.h:92
sen::db::test::DualClassSetup::component
sen::kernel::TestComponent component
Definition
db_test_helpers.h:89
sen::db::test::DualClassSetup::otherObject
std::shared_ptr< OtherObjImpl > otherObject
Definition
db_test_helpers.h:88
sen::db::test::DualClassSetup::testObject
std::shared_ptr< TestObjImpl > testObject
Definition
db_test_helpers.h:87
sen::db::test::SingleClassSetup::component
sen::kernel::TestComponent component
Definition
db_test_helpers.h:58
sen::db::test::SingleClassSetup::kernel
std::unique_ptr< sen::kernel::TestKernel > kernel
Definition
db_test_helpers.h:59
sen::db::test::SingleClassSetup::object
std::shared_ptr< TestObjImpl > object
Definition
db_test_helpers.h:57
sen::db::test::SingleClassSetup::SingleClassSetup
SingleClassSetup()
Definition
db_test_helpers.h:61
test_kernel.h
libs
db
test
db_test_helpers.h
Generated by
1.17.0