RTC Toolkit 5.1.0
Loading...
Searching...
No Matches
mockRuntimeRepoIf.hpp
Go to the documentation of this file.
1
13#ifndef RTCTK_COMPONENTFRAMEWORK_TEST_MOCKRUNTIMEREPOIF_HPP
14#define RTCTK_COMPONENTFRAMEWORK_TEST_MOCKRUNTIMEREPOIF_HPP
15
18
19#include <gmock/gmock.h>
20#include <gtest/gtest.h>
21
23
29class MockRuntimeRepoIf : virtual public RuntimeRepoIf, virtual public FakeRepositorySubscriber {
30public:
32#pragma GCC diagnostic push
33#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
34 // Setup the default behaviour to forward the calls to the fake repository.
35 using testing::A;
37 .WillByDefault([this](const DataPointPath& path, const std::type_info& type) {
39 });
40 ON_CALL(*this,
43 .WillByDefault([this](const DataPointPath& path,
44 const std::type_info& type,
45 const std::string& server_alias) {
47 });
48 ON_CALL(*this, DeleteDataPointLegacy).WillByDefault([this](const DataPointPath& path) {
50 });
52 .WillByDefault([this](const DataPointPath& path) -> const std::type_info& {
54 });
55 ON_CALL(*this, GetDataPointSizeLegacy).WillByDefault([this](const DataPointPath& path) {
57 });
58 ON_CALL(*this, DataPointExistsLegacy).WillByDefault([this](const DataPointPath& path) {
60 });
61 ON_CALL(*this, GetChildrenLegacy).WillByDefault([this](const DataPointPath& path) {
63 });
64 ON_CALL(*this, SendReadRequest).WillByDefault([this](const ReadRequest& request) {
66 });
67 ON_CALL(*this, SendWriteRequest).WillByDefault([this](const WriteRequest& request) {
69 });
70 ON_CALL(*this, SendSubscribeRequest).WillByDefault([this](const SubscribeRequest& request) {
72 });
74 .WillByDefault([this](const UnsubscribeRequest& request) {
76 });
77 ON_CALL(*this, GetServerAlias).WillByDefault([this](const DataPointPath& path) {
79 });
80#pragma GCC diagnostic pop
81 }
82
84
85 MOCK_METHOD(void, CreateDataPoint, (const DataPointPath&, const std::type_info&), (override));
88 (const DataPointPath&, const std::type_info&, const std::string&),
89 (override));
90 MOCK_METHOD(void, DeleteDataPointLegacy, (const DataPointPath&), (override));
91 MOCK_METHOD(const std::type_info&,
93 (const DataPointPath&),
94 (const override));
95 MOCK_METHOD(std::size_t, GetDataPointSizeLegacy, (const DataPointPath&), (const override));
96 MOCK_METHOD(bool, DataPointExistsLegacy, (const DataPointPath&), (const override));
97 MOCK_METHOD((std::pair<PathList, PathList>),
99 (const DataPointPath&),
100 (const override));
101#pragma GCC diagnostic push
102#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
103 MOCK_METHOD(Response, SendReadRequest, (const ReadRequest&), (const override));
107 MOCK_METHOD(std::string, GetServerAlias, (const DataPointPath&), (const override));
108#pragma GCC diagnostic pop
109
117
118protected:
120 for (const auto& request : requests) {
121 if (request.type() == typeid(detail::CreateRequest<std::byte>)) {
122 const auto& req = std::any_cast<const detail::CreateRequest<std::byte>&>(request);
123 CreateDataPointRequest(req.path);
124 } else if (request.type() == typeid(detail::CreateRequest<char>)) {
125 const auto& req = std::any_cast<const detail::CreateRequest<char>&>(request);
126 CreateDataPointRequest(req.path);
127 } else if (request.type() == typeid(detail::CreateRequest<RtcBool>)) {
128 const auto& req = std::any_cast<const detail::CreateRequest<RtcBool>&>(request);
129 CreateDataPointRequest(req.path);
130 } else if (request.type() == typeid(detail::CreateRequest<RtcInt8>)) {
131 const auto& req = std::any_cast<const detail::CreateRequest<RtcInt8>&>(request);
132 CreateDataPointRequest(req.path);
133 } else if (request.type() == typeid(detail::CreateRequest<RtcInt16>)) {
134 const auto& req = std::any_cast<const detail::CreateRequest<RtcInt16>&>(request);
135 CreateDataPointRequest(req.path);
136 } else if (request.type() == typeid(detail::CreateRequest<RtcInt32>)) {
137 const auto& req = std::any_cast<const detail::CreateRequest<RtcInt32>&>(request);
138 CreateDataPointRequest(req.path);
139 } else if (request.type() == typeid(detail::CreateRequest<RtcInt64>)) {
140 const auto& req = std::any_cast<const detail::CreateRequest<RtcInt64>&>(request);
141 CreateDataPointRequest(req.path);
142 } else if (request.type() == typeid(detail::CreateRequest<RtcUInt8>)) {
143 const auto& req = std::any_cast<const detail::CreateRequest<RtcUInt8>&>(request);
144 CreateDataPointRequest(req.path);
145 } else if (request.type() == typeid(detail::CreateRequest<RtcUInt16>)) {
146 const auto& req = std::any_cast<const detail::CreateRequest<RtcUInt16>&>(request);
147 CreateDataPointRequest(req.path);
148 } else if (request.type() == typeid(detail::CreateRequest<RtcUInt32>)) {
149 const auto& req = std::any_cast<const detail::CreateRequest<RtcUInt32>&>(request);
150 CreateDataPointRequest(req.path);
151 } else if (request.type() == typeid(detail::CreateRequest<RtcUInt64>)) {
152 const auto& req = std::any_cast<const detail::CreateRequest<RtcUInt64>&>(request);
153 CreateDataPointRequest(req.path);
154 } else if (request.type() == typeid(detail::CreateRequest<RtcFloat>)) {
155 const auto& req = std::any_cast<const detail::CreateRequest<RtcFloat>&>(request);
156 CreateDataPointRequest(req.path);
157 } else if (request.type() == typeid(detail::CreateRequest<RtcDouble>)) {
158 const auto& req = std::any_cast<const detail::CreateRequest<RtcDouble>&>(request);
159 CreateDataPointRequest(req.path);
160 } else if (request.type() == typeid(detail::CreateRequest<RtcString>)) {
161 const auto& req = std::any_cast<const detail::CreateRequest<RtcString>&>(request);
162 CreateDataPointRequest(req.path);
163 } else if (request.type() == typeid(detail::DeleteRequest)) {
164 const auto& req = std::any_cast<const detail::DeleteRequest&>(request);
165 DeleteDataPointRequest(req.path);
166 } else if (request.type() == typeid(detail::ReadMetaDataRequest)) {
167 const auto& req = std::any_cast<const detail::ReadMetaDataRequest&>(request);
168 GetDataPointTypeRequest(req.path);
169 GetDataPointSizeRequest(req.path);
170 } else if (request.type() == typeid(detail::ExistsRequest)) {
171 const auto& req = std::any_cast<const detail::ExistsRequest&>(request);
172 DataPointExistsRequest(req.path);
173 } else if (request.type() == typeid(detail::ReadRequest<std::byte>)) {
174 const auto& req = std::any_cast<const detail::ReadRequest<std::byte>&>(request);
175 ReceivedReadRequest(req.path);
176 } else if (request.type() == typeid(detail::ReadRequest<char>)) {
177 const auto& req = std::any_cast<const detail::ReadRequest<char>&>(request);
178 ReceivedReadRequest(req.path);
179 } else if (request.type() == typeid(detail::ReadRequest<RtcBool>)) {
180 const auto& req = std::any_cast<const detail::ReadRequest<RtcBool>&>(request);
181 ReceivedReadRequest(req.path);
182 } else if (request.type() == typeid(detail::ReadRequest<RtcInt8>)) {
183 const auto& req = std::any_cast<const detail::ReadRequest<RtcInt8>&>(request);
184 ReceivedReadRequest(req.path);
185 } else if (request.type() == typeid(detail::ReadRequest<RtcInt16>)) {
186 const auto& req = std::any_cast<const detail::ReadRequest<RtcInt16>&>(request);
187 ReceivedReadRequest(req.path);
188 } else if (request.type() == typeid(detail::ReadRequest<RtcInt32>)) {
189 const auto& req = std::any_cast<const detail::ReadRequest<RtcInt32>&>(request);
190 ReceivedReadRequest(req.path);
191 } else if (request.type() == typeid(detail::ReadRequest<RtcInt64>)) {
192 const auto& req = std::any_cast<const detail::ReadRequest<RtcInt64>&>(request);
193 ReceivedReadRequest(req.path);
194 } else if (request.type() == typeid(detail::ReadRequest<RtcUInt8>)) {
195 const auto& req = std::any_cast<const detail::ReadRequest<RtcUInt8>&>(request);
196 ReceivedReadRequest(req.path);
197 } else if (request.type() == typeid(detail::ReadRequest<RtcUInt16>)) {
198 const auto& req = std::any_cast<const detail::ReadRequest<RtcUInt16>&>(request);
199 ReceivedReadRequest(req.path);
200 } else if (request.type() == typeid(detail::ReadRequest<RtcUInt32>)) {
201 const auto& req = std::any_cast<const detail::ReadRequest<RtcUInt32>&>(request);
202 ReceivedReadRequest(req.path);
203 } else if (request.type() == typeid(detail::ReadRequest<RtcUInt64>)) {
204 const auto& req = std::any_cast<const detail::ReadRequest<RtcUInt64>&>(request);
205 ReceivedReadRequest(req.path);
206 } else if (request.type() == typeid(detail::ReadRequest<RtcFloat>)) {
207 const auto& req = std::any_cast<const detail::ReadRequest<RtcFloat>&>(request);
208 ReceivedReadRequest(req.path);
209 } else if (request.type() == typeid(detail::ReadRequest<RtcDouble>)) {
210 const auto& req = std::any_cast<const detail::ReadRequest<RtcDouble>&>(request);
211 ReceivedReadRequest(req.path);
212 } else if (request.type() == typeid(detail::ReadRequest<RtcString>)) {
213 const auto& req = std::any_cast<const detail::ReadRequest<RtcString>&>(request);
214 ReceivedReadRequest(req.path);
215 } else if (request.type() == typeid(detail::WriteRequest<std::byte>)) {
216 const auto& req = std::any_cast<const detail::WriteRequest<std::byte>&>(request);
217 ReceivedWriteRequest(req.path);
218 } else if (request.type() == typeid(detail::WriteRequest<char>)) {
219 const auto& req = std::any_cast<const detail::WriteRequest<char>&>(request);
220 ReceivedWriteRequest(req.path);
221 } else if (request.type() == typeid(detail::WriteRequest<RtcBool>)) {
222 const auto& req = std::any_cast<const detail::WriteRequest<RtcBool>&>(request);
223 ReceivedWriteRequest(req.path);
224 } else if (request.type() == typeid(detail::WriteRequest<RtcInt8>)) {
225 const auto& req = std::any_cast<const detail::WriteRequest<RtcInt8>&>(request);
226 ReceivedWriteRequest(req.path);
227 } else if (request.type() == typeid(detail::WriteRequest<RtcInt16>)) {
228 const auto& req = std::any_cast<const detail::WriteRequest<RtcInt16>&>(request);
229 ReceivedWriteRequest(req.path);
230 } else if (request.type() == typeid(detail::WriteRequest<RtcInt32>)) {
231 const auto& req = std::any_cast<const detail::WriteRequest<RtcInt32>&>(request);
232 ReceivedWriteRequest(req.path);
233 } else if (request.type() == typeid(detail::WriteRequest<RtcInt64>)) {
234 const auto& req = std::any_cast<const detail::WriteRequest<RtcInt64>&>(request);
235 ReceivedWriteRequest(req.path);
236 } else if (request.type() == typeid(detail::WriteRequest<RtcUInt8>)) {
237 const auto& req = std::any_cast<const detail::WriteRequest<RtcUInt8>&>(request);
238 ReceivedWriteRequest(req.path);
239 } else if (request.type() == typeid(detail::WriteRequest<RtcUInt16>)) {
240 const auto& req = std::any_cast<const detail::WriteRequest<RtcUInt16>&>(request);
241 ReceivedWriteRequest(req.path);
242 } else if (request.type() == typeid(detail::WriteRequest<RtcUInt32>)) {
243 const auto& req = std::any_cast<const detail::WriteRequest<RtcUInt32>&>(request);
244 ReceivedWriteRequest(req.path);
245 } else if (request.type() == typeid(detail::WriteRequest<RtcUInt64>)) {
246 const auto& req = std::any_cast<const detail::WriteRequest<RtcUInt64>&>(request);
247 ReceivedWriteRequest(req.path);
248 } else if (request.type() == typeid(detail::WriteRequest<RtcFloat>)) {
249 const auto& req = std::any_cast<const detail::WriteRequest<RtcFloat>&>(request);
250 ReceivedWriteRequest(req.path);
251 } else if (request.type() == typeid(detail::WriteRequest<RtcDouble>)) {
252 const auto& req = std::any_cast<const detail::WriteRequest<RtcDouble>&>(request);
253 ReceivedWriteRequest(req.path);
254 } else if (request.type() == typeid(detail::WriteRequest<RtcString>)) {
255 const auto& req = std::any_cast<const detail::WriteRequest<RtcString>&>(request);
256 ReceivedWriteRequest(req.path);
257 }
258 }
260 }
261};
262
263} // namespace rtctk::componentFramework::test
264
265#endif // RTCTK_COMPONENTFRAMEWORK_TEST_MOCKRUNTIMEREPOIF_HPP
This class provides a wrapper for a data point path.
Definition dataPointPath.hpp:74
A request object to pass information about datapoints that should be read from the repository.
Definition repositoryIf.hpp:1213
An object used to wait for a request to complete.
Definition repositoryIf.hpp:1370
A request object to pass information about datapoints that should be written to the repository.
Definition repositoryIf.hpp:1290
virtual bool DataPointExistsLegacy(const DataPointPath &path) const
Checks for the existence of a datapoint in the repository.
Definition repositoryIf.cpp:721
virtual BatchResponse ProcessRequests(const RequestList &requests)=0
virtual Response SendReadRequest(const ReadRequest &request) const
Sends a request to read data from the repository.
Definition repositoryIf.cpp:775
virtual const std::type_info & GetDataPointTypeLegacy(const DataPointPath &path) const
Fetches the type of the datapoint.
Definition repositoryIf.cpp:713
virtual size_t GetDataPointSizeLegacy(const DataPointPath &path) const
Fetches the size of the datapoint's data.
Definition repositoryIf.cpp:717
virtual void DeleteDataPointLegacy(const DataPointPath &path)
Deletes a datapoint.
Definition repositoryIf.cpp:709
std::vector< std::any > RequestList
Definition repositoryIf.hpp:106
virtual std::pair< PathList, PathList > GetChildrenLegacy(const DataPointPath &path) const
Queries the datapoints and child paths for a given path.
Definition repositoryIf.cpp:726
virtual Response SendWriteRequest(const WriteRequest &request)
Sends a request to write data to the repository.
Definition repositoryIf.cpp:852
A request object to pass information about datapoints to subscribe to.
Definition repositorySubscriberIf.hpp:166
A request object to pass information about datapoints to unsubscribe from.
Definition repositorySubscriberIf.hpp:278
virtual RepositoryIf::Response SendSubscribeRequest(const SubscribeRequest &request) const
This is called to asynchronously send a subscription request for datapoints.
Definition repositorySubscriberIf.cpp:165
virtual RepositoryIf::Response SendUnsubscribeRequest(const UnsubscribeRequest &request) const
This is called to asynchronously send a request to unsubscribe from various notifications.
Definition repositorySubscriberIf.cpp:258
Base interface for all Runtime Configuration Repository adapters.
Definition runtimeRepoIf.hpp:27
virtual void CreateDataPoint(const DataPointPath &path, const std::type_info &type, const std::string &server_alias)
Creates a new datapoint in the repository with a specified type on a particular external Redis server...
Definition runtimeRepoIf.cpp:37
virtual std::string GetServerAlias(const DataPointPath &path) const
Fetches the server alias for a specific datapoint.
Definition runtimeRepoIf.cpp:48
A simple fake implementation of RepositorySubscriberIf to allow testing the interactions and callback...
Definition fakeRepositorySubscriber.hpp:28
A mock of RuntimeRepoIf.
Definition mockRuntimeRepoIf.hpp:29
MOCK_METHOD(bool, DataPointExistsLegacy,(const DataPointPath &),(const override))
MOCK_METHOD(Response, SendSubscribeRequest,(const SubscribeRequest &),(const override))
MOCK_METHOD(void, CreateDataPoint,(const DataPointPath &, const std::type_info &),(override))
MOCK_METHOD(void, DeleteDataPointRequest,(const DataPointPath &))
MOCK_METHOD(std::string, GetServerAlias,(const DataPointPath &),(const override))
MOCK_METHOD(std::size_t, GetDataPointSizeLegacy,(const DataPointPath &),(const override))
MOCK_METHOD(Response, SendReadRequest,(const ReadRequest &),(const override))
MOCK_METHOD(Response, SendUnsubscribeRequest,(const UnsubscribeRequest &),(const override))
MOCK_METHOD((std::pair< PathList, PathList >), GetChildrenLegacy,(const DataPointPath &),(const override))
BatchResponse ProcessRequests(const RequestList &requests) override
Definition mockRuntimeRepoIf.hpp:119
MOCK_METHOD(void, GetDataPointSizeRequest,(const DataPointPath &),(const))
MOCK_METHOD(void, CreateDataPointRequest,(const DataPointPath &))
MOCK_METHOD(void, ReceivedReadRequest,(const DataPointPath &),(const))
virtual void CreateDataPoint(const DataPointPath &path, const std::type_info &type, const std::string &server_alias)
Creates a new datapoint in the repository with a specified type on a particular external Redis server...
Definition runtimeRepoIf.cpp:37
MOCK_METHOD(const std::type_info &, GetDataPointTypeLegacy,(const DataPointPath &),(const override))
MOCK_METHOD(void, CreateDataPoint,(const DataPointPath &, const std::type_info &, const std::string &),(override))
MOCK_METHOD(void, DataPointExistsRequest,(const DataPointPath &),(const))
MOCK_METHOD(Response, SendWriteRequest,(const WriteRequest &),(override))
MOCK_METHOD(void, DeleteDataPointLegacy,(const DataPointPath &),(override))
MOCK_METHOD(void, ReceivedWriteRequest,(const DataPointPath &))
MOCK_METHOD(void, GetDataPointTypeRequest,(const DataPointPath &),(const))
MockRuntimeRepoIf()
Definition mockRuntimeRepoIf.hpp:31
Header file for an in-memory fake RepositorySubscriberIf.
Definition fakeClock.cpp:15
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23
Header file for RuntimeRepoIf, which defines the API for RuntimeRepoAdapters.