Sen API
Sen Libraries
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 "archive_test_helpers.h"
15
16// sen
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
31{
32
33using sen::test::firstEventId;
34using sen::test::firstPropertyId;
35using sen::test::makeArchivePath;
36using sen::test::makeArchiveSettings;
37using sen::test::makeObjectInfo;
38using sen::test::makeTime;
39using sen::test::TempDir;
40
41class TestObjImpl: public db_test::TestObjBase
42{
43public:
44 SEN_NOCOPY_NOMOVE(TestObjImpl)
45 using TestObjBase::TestObjBase;
46 ~TestObjImpl() override = default;
47 using TestObjBase::valueChanged;
48};
49
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
57 {
58 object = std::make_shared<TestObjImpl>("testObj", sen::VarMap {});
59 component.onInit(
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
72class OtherObjImpl: public db_test::OtherObjBase
73{
74public:
75 SEN_NOCOPY_NOMOVE(OtherObjImpl)
76 using OtherObjBase::OtherObjBase;
77 ~OtherObjImpl() override = default;
78};
79
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
88 {
89 testObject = std::make_shared<TestObjImpl>("testObj", sen::VarMap {});
90 otherObject = std::make_shared<OtherObjImpl>("otherObj", sen::VarMap {});
91 component.onInit(
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
Definition db_test_helpers.h:73
~OtherObjImpl() override=default
Definition db_test_helpers.h:42
~TestObjImpl() override=default
What can be done when initializing a component.
Definition component_api.h:249
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:31
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:59
std::unique_ptr< sen::kernel::TestKernel > kernel
Definition db_test_helpers.h:85
DualClassSetup()
Definition db_test_helpers.h:87
sen::kernel::TestComponent component
Definition db_test_helpers.h:84
std::shared_ptr< OtherObjImpl > otherObject
Definition db_test_helpers.h:83
std::shared_ptr< TestObjImpl > testObject
Definition db_test_helpers.h:82
sen::kernel::TestComponent component
Definition db_test_helpers.h:53
std::unique_ptr< sen::kernel::TestKernel > kernel
Definition db_test_helpers.h:54
std::shared_ptr< TestObjImpl > object
Definition db_test_helpers.h:52
SingleClassSetup()
Definition db_test_helpers.h:56