Sen API
Sen Libraries
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
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
36{
37
38using sen::test::firstEventId;
39using sen::test::firstPropertyId;
40using sen::test::makeArchivePath;
41using sen::test::makeArchiveSettings;
42using sen::test::makeObjectInfo;
43using sen::test::makeTime;
44using sen::test::TempDir;
45
46class TestObjImpl: public db_test::TestObjBase
47{
48public:
49 SEN_NOCOPY_NOMOVE(TestObjImpl)
50 using TestObjBase::TestObjBase;
51 ~TestObjImpl() override = default;
52 using TestObjBase::valueChanged;
53};
54
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
62 {
63 object = std::make_shared<TestObjImpl>("testObj", sen::VarMap {});
64 component.onInit(
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
77class OtherObjImpl: public db_test::OtherObjBase
78{
79public:
80 SEN_NOCOPY_NOMOVE(OtherObjImpl)
81 using OtherObjBase::OtherObjBase;
82 ~OtherObjImpl() override = default;
83};
84
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
93 {
94 testObject = std::make_shared<TestObjImpl>("testObj", sen::VarMap {});
95 otherObject = std::make_shared<OtherObjImpl>("otherObj", sen::VarMap {});
96 component.onInit(
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
Definition db_test_helpers.h:78
~OtherObjImpl() override=default
Definition db_test_helpers.h:47
~TestObjImpl() override=default
What can be done when initializing a component.
Definition component_api.h:458
Convenience class for using lambdas instead of inheritance when defining test components.
Definition test_kernel.h:58
std::map< std::string, Var, std::less<> > VarMap
A map of vars to represent structures.
Definition var.h:107
Definition db_test_helpers.h:36
PassResult done()
Convenience helper for doing sen::Ok(sen::kernel::OpState {sen::kernel::OpFinished {}...
Definition component.h:25
Result< OpState, ExecError > PassResult
The result of operations that may be called multiple times.
Definition component_api.h:64
std::unique_ptr< sen::kernel::TestKernel > kernel
Definition db_test_helpers.h:90
DualClassSetup()
Definition db_test_helpers.h:92
sen::kernel::TestComponent component
Definition db_test_helpers.h:89
std::shared_ptr< OtherObjImpl > otherObject
Definition db_test_helpers.h:88
std::shared_ptr< TestObjImpl > testObject
Definition db_test_helpers.h:87
sen::kernel::TestComponent component
Definition db_test_helpers.h:58
std::unique_ptr< sen::kernel::TestKernel > kernel
Definition db_test_helpers.h:59
std::shared_ptr< TestObjImpl > object
Definition db_test_helpers.h:57
SingleClassSetup()
Definition db_test_helpers.h:61