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