ifw-fcf 8.0.2
 
Loading...
Searching...
No Matches
mockHelpers.hpp
Go to the documentation of this file.
1
10
11#ifndef IFW_FCF_DEVMGR_DEVICES_MOCK_HELPERS_HPP_
12#define IFW_FCF_DEVMGR_DEVICES_MOCK_HELPERS_HPP_
13
14#include <ifw/fnd/defs/iCommAdapter.hpp>
15#include <string>
16#include <utility>
17#include <vector>
18
19namespace ifw::fcf::devmgr::test {
20
21 inline ifw::fnd::defs::CallResult
22 MakeRpcReply(short code, ifw::fnd::defs::Status batch_status =
23 ifw::fnd::defs::Status::Ok) {
24 ifw::fnd::defs::CallResult res;
25 res.status = batch_status;
26 ifw::fnd::defs::CallArgumentResult arg;
27 arg.data.value = code;
28 res.output_arguments.push_back(std::move(arg));
29 return res;
30 }
31
32 inline ifw::fnd::defs::ReadResult
33 MakeReadReply(std::vector<std::pair<std::string,
34 ifw::fnd::defs::Value>> items) {
35 ifw::fnd::defs::ReadResult res;
36 for (auto& [addr, val] : items) {
37 ifw::fnd::defs::ReadItemResult ir;
38 ir.address = std::move(addr);
39 ifw::fnd::defs::DataValue dv;
40 dv.value = std::move(val);
41 ir.data = std::move(dv);
42 res.items.push_back(std::move(ir));
43 }
44 return res;
45 }
46
47 inline ifw::fnd::defs::Result MakeOk() {
48 return ifw::fnd::defs::Result{};
49 }
50
51 inline ifw::fnd::defs::WriteResult
52 MakeWriteOk(const ifw::fnd::defs::WriteRequest& req) {
53 ifw::fnd::defs::WriteResult res;
54 for (const auto& item : req.items) {
55 ifw::fnd::defs::WriteItemResult wr;
56 wr.address = item.address;
57 res.items.push_back(std::move(wr));
58 }
59 return res;
60 }
61
62 inline ifw::fnd::defs::SubscribeResult
63 MakeSubscribeOk(const std::vector<ifw::fnd::defs::Address>& nodes) {
64 ifw::fnd::defs::SubscribeResult res;
65 for (const auto& addr : nodes) {
66 ifw::fnd::defs::SubscribeItemResult sr;
67 sr.address = addr;
68 res.items.push_back(std::move(sr));
69 }
70 return res;
71 }
72
76 inline ifw::fnd::defs::Notification
77 MakeNotification(const std::string& address,
78 const ifw::fnd::defs::Value& value) {
79 ifw::fnd::defs::Notification note;
80 note.address = address;
81 note.data.value = value;
82 return note;
83 }
84
85} // namespace ifw::fcf::devmgr::test
86
87#endif // IFW_FCF_DEVMGR_DEVICES_MOCK_HELPERS_HPP_
Definition mockHelpers.hpp:21
ifw::fnd::defs::Notification MakeNotification(const std::string &address, const ifw::fnd::defs::Value &value)
Build a single-attribute Notification suitable for feeding to a Listener that uses m_ua_status_map....
Definition mockHelpers.hpp:77
ifw::fnd::defs::ReadResult MakeReadReply(std::vector< std::pair< std::string, ifw::fnd::defs::Value > > items)
Build a ReadResult from a list of (address, value) pairs. Every item is marked Ok....
Definition mockHelpers.hpp:41
ifw::fnd::defs::Result MakeOk()
Build a generic "Ok" Result.
Definition mockHelpers.hpp:56
ifw::fnd::defs::CallResult MakeRpcReply(short code, ifw::fnd::defs::Status batch_status=ifw::fnd::defs::Status::Ok)
Build a CallResult that carries a single short reply code, matching the convention every FCF RPC uses...
Definition mockHelpers.hpp:27
ifw::fnd::defs::SubscribeResult MakeSubscribeOk(const std::vector< ifw::fnd::defs::Address > &nodes)
Build a SubscribeResult acknowledging every requested node.
Definition mockHelpers.hpp:75
ifw::fnd::defs::WriteResult MakeWriteOk(const ifw::fnd::defs::WriteRequest &req)
Build a WriteResult that succeeds for every item address in the request. Reflects the typical Write s...
Definition mockHelpers.hpp:63