RTC Toolkit 6.0.0-pre2
Loading...
Searching...
No Matches
mockRepository.hpp
Go to the documentation of this file.
1
12
13#ifndef RTCTK_COMPONENTFRAMEWORK_TEST_MOCKREPOSITORY_HPP
14#define RTCTK_COMPONENTFRAMEWORK_TEST_MOCKREPOSITORY_HPP
15
17
18#include <gmock/gmock.h>
19#include <gtest/gtest.h>
20
22
28class MockRepository : virtual public FakeRepository {
29public:
30 MOCK_METHOD(void, CreateDataPointRequest, (const DataPointPath&));
31 MOCK_METHOD(void, DeleteDataPointRequest, (const DataPointPath&));
32 MOCK_METHOD(void, GetDataPointTypeRequest, (const DataPointPath&), (const));
33 MOCK_METHOD(void, GetDataPointSizeRequest, (const DataPointPath&), (const));
34 MOCK_METHOD(void, DataPointExistsRequest, (const DataPointPath&), (const));
35 MOCK_METHOD(void, ReceivedReadRequest, (const DataPointPath&), (const));
36 MOCK_METHOD(void, ReceivedWriteRequest, (const DataPointPath&));
37
38protected:
39 BatchResponse ProcessRequests(const RequestList& requests) override {
40 for (const auto& request : requests) {
41 if (request.type() == typeid(detail::CreateRequest<std::byte>)) {
42 const auto& req = std::any_cast<const detail::CreateRequest<std::byte>&>(request);
43 CreateDataPointRequest(req.path);
44 } else if (request.type() == typeid(detail::CreateRequest<char>)) {
45 const auto& req = std::any_cast<const detail::CreateRequest<char>&>(request);
46 CreateDataPointRequest(req.path);
47 } else if (request.type() == typeid(detail::CreateRequest<RtcBool>)) {
48 const auto& req = std::any_cast<const detail::CreateRequest<RtcBool>&>(request);
49 CreateDataPointRequest(req.path);
50 } else if (request.type() == typeid(detail::CreateRequest<RtcInt8>)) {
51 const auto& req = std::any_cast<const detail::CreateRequest<RtcInt8>&>(request);
52 CreateDataPointRequest(req.path);
53 } else if (request.type() == typeid(detail::CreateRequest<RtcInt16>)) {
54 const auto& req = std::any_cast<const detail::CreateRequest<RtcInt16>&>(request);
55 CreateDataPointRequest(req.path);
56 } else if (request.type() == typeid(detail::CreateRequest<RtcInt32>)) {
57 const auto& req = std::any_cast<const detail::CreateRequest<RtcInt32>&>(request);
58 CreateDataPointRequest(req.path);
59 } else if (request.type() == typeid(detail::CreateRequest<RtcInt64>)) {
60 const auto& req = std::any_cast<const detail::CreateRequest<RtcInt64>&>(request);
61 CreateDataPointRequest(req.path);
62 } else if (request.type() == typeid(detail::CreateRequest<RtcUInt8>)) {
63 const auto& req = std::any_cast<const detail::CreateRequest<RtcUInt8>&>(request);
64 CreateDataPointRequest(req.path);
65 } else if (request.type() == typeid(detail::CreateRequest<RtcUInt16>)) {
66 const auto& req = std::any_cast<const detail::CreateRequest<RtcUInt16>&>(request);
67 CreateDataPointRequest(req.path);
68 } else if (request.type() == typeid(detail::CreateRequest<RtcUInt32>)) {
69 const auto& req = std::any_cast<const detail::CreateRequest<RtcUInt32>&>(request);
70 CreateDataPointRequest(req.path);
71 } else if (request.type() == typeid(detail::CreateRequest<RtcUInt64>)) {
72 const auto& req = std::any_cast<const detail::CreateRequest<RtcUInt64>&>(request);
73 CreateDataPointRequest(req.path);
74 } else if (request.type() == typeid(detail::CreateRequest<RtcFloat>)) {
75 const auto& req = std::any_cast<const detail::CreateRequest<RtcFloat>&>(request);
76 CreateDataPointRequest(req.path);
77 } else if (request.type() == typeid(detail::CreateRequest<RtcDouble>)) {
78 const auto& req = std::any_cast<const detail::CreateRequest<RtcDouble>&>(request);
79 CreateDataPointRequest(req.path);
80 } else if (request.type() == typeid(detail::CreateRequest<RtcString>)) {
81 const auto& req = std::any_cast<const detail::CreateRequest<RtcString>&>(request);
82 CreateDataPointRequest(req.path);
83 } else if (request.type() == typeid(detail::DeleteRequest)) {
84 const auto& req = std::any_cast<const detail::DeleteRequest&>(request);
85 DeleteDataPointRequest(req.path);
86 } else if (request.type() == typeid(detail::ReadMetaDataRequest)) {
87 const auto& req = std::any_cast<const detail::ReadMetaDataRequest&>(request);
88 GetDataPointTypeRequest(req.path);
89 GetDataPointSizeRequest(req.path);
90 } else if (request.type() == typeid(detail::ExistsRequest)) {
91 const auto& req = std::any_cast<const detail::ExistsRequest&>(request);
92 DataPointExistsRequest(req.path);
93 } else if (request.type() == typeid(detail::ReadRequest<std::byte>)) {
94 const auto& req = std::any_cast<const detail::ReadRequest<std::byte>&>(request);
95 ReceivedReadRequest(req.path);
96 } else if (request.type() == typeid(detail::ReadRequest<char>)) {
97 const auto& req = std::any_cast<const detail::ReadRequest<char>&>(request);
98 ReceivedReadRequest(req.path);
99 } else if (request.type() == typeid(detail::ReadRequest<RtcBool>)) {
100 const auto& req = std::any_cast<const detail::ReadRequest<RtcBool>&>(request);
101 ReceivedReadRequest(req.path);
102 } else if (request.type() == typeid(detail::ReadRequest<RtcInt8>)) {
103 const auto& req = std::any_cast<const detail::ReadRequest<RtcInt8>&>(request);
104 ReceivedReadRequest(req.path);
105 } else if (request.type() == typeid(detail::ReadRequest<RtcInt16>)) {
106 const auto& req = std::any_cast<const detail::ReadRequest<RtcInt16>&>(request);
107 ReceivedReadRequest(req.path);
108 } else if (request.type() == typeid(detail::ReadRequest<RtcInt32>)) {
109 const auto& req = std::any_cast<const detail::ReadRequest<RtcInt32>&>(request);
110 ReceivedReadRequest(req.path);
111 } else if (request.type() == typeid(detail::ReadRequest<RtcInt64>)) {
112 const auto& req = std::any_cast<const detail::ReadRequest<RtcInt64>&>(request);
113 ReceivedReadRequest(req.path);
114 } else if (request.type() == typeid(detail::ReadRequest<RtcUInt8>)) {
115 const auto& req = std::any_cast<const detail::ReadRequest<RtcUInt8>&>(request);
116 ReceivedReadRequest(req.path);
117 } else if (request.type() == typeid(detail::ReadRequest<RtcUInt16>)) {
118 const auto& req = std::any_cast<const detail::ReadRequest<RtcUInt16>&>(request);
119 ReceivedReadRequest(req.path);
120 } else if (request.type() == typeid(detail::ReadRequest<RtcUInt32>)) {
121 const auto& req = std::any_cast<const detail::ReadRequest<RtcUInt32>&>(request);
122 ReceivedReadRequest(req.path);
123 } else if (request.type() == typeid(detail::ReadRequest<RtcUInt64>)) {
124 const auto& req = std::any_cast<const detail::ReadRequest<RtcUInt64>&>(request);
125 ReceivedReadRequest(req.path);
126 } else if (request.type() == typeid(detail::ReadRequest<RtcFloat>)) {
127 const auto& req = std::any_cast<const detail::ReadRequest<RtcFloat>&>(request);
128 ReceivedReadRequest(req.path);
129 } else if (request.type() == typeid(detail::ReadRequest<RtcDouble>)) {
130 const auto& req = std::any_cast<const detail::ReadRequest<RtcDouble>&>(request);
131 ReceivedReadRequest(req.path);
132 } else if (request.type() == typeid(detail::ReadRequest<RtcString>)) {
133 const auto& req = std::any_cast<const detail::ReadRequest<RtcString>&>(request);
134 ReceivedReadRequest(req.path);
135 } else if (request.type() == typeid(detail::WriteRequest<std::byte>)) {
136 const auto& req = std::any_cast<const detail::WriteRequest<std::byte>&>(request);
137 ReceivedWriteRequest(req.path);
138 } else if (request.type() == typeid(detail::WriteRequest<char>)) {
139 const auto& req = std::any_cast<const detail::WriteRequest<char>&>(request);
140 ReceivedWriteRequest(req.path);
141 } else if (request.type() == typeid(detail::WriteRequest<RtcBool>)) {
142 const auto& req = std::any_cast<const detail::WriteRequest<RtcBool>&>(request);
143 ReceivedWriteRequest(req.path);
144 } else if (request.type() == typeid(detail::WriteRequest<RtcInt8>)) {
145 const auto& req = std::any_cast<const detail::WriteRequest<RtcInt8>&>(request);
146 ReceivedWriteRequest(req.path);
147 } else if (request.type() == typeid(detail::WriteRequest<RtcInt16>)) {
148 const auto& req = std::any_cast<const detail::WriteRequest<RtcInt16>&>(request);
149 ReceivedWriteRequest(req.path);
150 } else if (request.type() == typeid(detail::WriteRequest<RtcInt32>)) {
151 const auto& req = std::any_cast<const detail::WriteRequest<RtcInt32>&>(request);
152 ReceivedWriteRequest(req.path);
153 } else if (request.type() == typeid(detail::WriteRequest<RtcInt64>)) {
154 const auto& req = std::any_cast<const detail::WriteRequest<RtcInt64>&>(request);
155 ReceivedWriteRequest(req.path);
156 } else if (request.type() == typeid(detail::WriteRequest<RtcUInt8>)) {
157 const auto& req = std::any_cast<const detail::WriteRequest<RtcUInt8>&>(request);
158 ReceivedWriteRequest(req.path);
159 } else if (request.type() == typeid(detail::WriteRequest<RtcUInt16>)) {
160 const auto& req = std::any_cast<const detail::WriteRequest<RtcUInt16>&>(request);
161 ReceivedWriteRequest(req.path);
162 } else if (request.type() == typeid(detail::WriteRequest<RtcUInt32>)) {
163 const auto& req = std::any_cast<const detail::WriteRequest<RtcUInt32>&>(request);
164 ReceivedWriteRequest(req.path);
165 } else if (request.type() == typeid(detail::WriteRequest<RtcUInt64>)) {
166 const auto& req = std::any_cast<const detail::WriteRequest<RtcUInt64>&>(request);
167 ReceivedWriteRequest(req.path);
168 } else if (request.type() == typeid(detail::WriteRequest<RtcFloat>)) {
169 const auto& req = std::any_cast<const detail::WriteRequest<RtcFloat>&>(request);
170 ReceivedWriteRequest(req.path);
171 } else if (request.type() == typeid(detail::WriteRequest<RtcDouble>)) {
172 const auto& req = std::any_cast<const detail::WriteRequest<RtcDouble>&>(request);
173 ReceivedWriteRequest(req.path);
174 } else if (request.type() == typeid(detail::WriteRequest<RtcString>)) {
175 const auto& req = std::any_cast<const detail::WriteRequest<RtcString>&>(request);
176 ReceivedWriteRequest(req.path);
177 }
178 }
179 return FakeRepository::ProcessRequests(requests);
180 }
181};
182
183} // namespace rtctk::componentFramework::test
184
185#endif // RTCTK_COMPONENTFRAMEWORK_TEST_MOCKREPOSITORY_HPP
This class provides a wrapper for a data point path.
Definition dataPointPath.hpp:77
std::vector< std::any > RequestList
Definition repositoryIf.hpp:53
BatchResponse ProcessRequests(const RequestList &requests) override
Definition fakeRepository.cpp:511
FakeRepository()
Definition fakeRepository.cpp:78
A GoogleTest mock of RepositoryIf.
Definition mockRepository.hpp:28
MOCK_METHOD(void, GetDataPointSizeRequest,(const DataPointPath &),(const))
MOCK_METHOD(void, DataPointExistsRequest,(const DataPointPath &),(const))
MOCK_METHOD(void, DeleteDataPointRequest,(const DataPointPath &))
BatchResponse ProcessRequests(const RequestList &requests) override
Definition mockRepository.hpp:39
MOCK_METHOD(void, CreateDataPointRequest,(const DataPointPath &))
MOCK_METHOD(void, ReceivedWriteRequest,(const DataPointPath &))
MOCK_METHOD(void, GetDataPointTypeRequest,(const DataPointPath &),(const))
MOCK_METHOD(void, ReceivedReadRequest,(const DataPointPath &),(const))
Header file for an in-memory fake RepositoryIf.
Definition fakeClock.cpp:15