blob: e4df6a34dbf8caa4c29729fdd53936428fc1e85d [file] [log] [blame]
Patrick Venturedba73d72018-04-12 14:14:42 -07001#pragma once
2
William A. Kennington IIIa0f52a32018-06-22 18:39:42 -07003#include <sdbusplus/bus.hpp>
Patrick Venturedba73d72018-04-12 14:14:42 -07004#include <sdbusplus/sdbus.hpp>
5
Patrick Venture95269db2018-08-31 09:19:17 -07006#include "gmock/gmock.h"
7
Patrick Venturedba73d72018-04-12 14:14:42 -07008namespace sdbusplus
9{
10
11class SdBusMock : public SdBusInterface
12{
13 public:
14 virtual ~SdBusMock(){};
15
Patrick Venture248c9902018-04-10 17:53:43 -070016 MOCK_METHOD3(sd_bus_add_object_manager,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070017 int(sd_bus*, sd_bus_slot**, const char*));
Patrick Venture540946e2018-04-16 13:17:51 -070018 MOCK_METHOD6(sd_bus_add_object_vtable,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070019 int(sd_bus*, sd_bus_slot**, const char*, const char*,
20 const sd_bus_vtable*, void*));
21 MOCK_METHOD3(sd_bus_attach_event, int(sd_bus*, sd_event*, int));
22 MOCK_METHOD5(sd_bus_call, int(sd_bus*, sd_bus_message*, uint64_t,
23 sd_bus_error*, sd_bus_message**));
William A. Kennington III472b7022021-04-15 13:13:14 -070024 MOCK_METHOD(int, sd_bus_call_async,
25 (sd_bus*, sd_bus_slot**, sd_bus_message*,
26 sd_bus_message_handler_t, void*, uint64_t),
27 (override));
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070028 MOCK_METHOD1(sd_bus_detach_event, int(sd_bus*));
Patrick Ventureff095682018-04-13 20:54:32 -070029
30 MOCK_METHOD3(sd_bus_emit_interfaces_added_strv,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070031 int(sd_bus*, const char*, char**));
Patrick Ventureff095682018-04-13 20:54:32 -070032 MOCK_METHOD3(sd_bus_emit_interfaces_removed_strv,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070033 int(sd_bus*, const char*, char**));
34 MOCK_METHOD2(sd_bus_emit_object_added, int(sd_bus*, const char*));
35 MOCK_METHOD2(sd_bus_emit_object_removed, int(sd_bus*, const char*));
Patrick Venture540946e2018-04-16 13:17:51 -070036 MOCK_METHOD4(sd_bus_emit_properties_changed_strv,
Patrick Williamse6594362020-10-10 09:41:24 -050037 int(sd_bus*, const char*, const char*, const char**));
Patrick Ventureff095682018-04-13 20:54:32 -070038
William A. Kennington III65654542018-10-11 15:17:31 -070039 MOCK_METHOD3(sd_bus_error_set,
40 int(sd_bus_error*, const char*, const char*));
Patrick Venture263712f2018-04-16 14:19:08 -070041 MOCK_METHOD3(sd_bus_error_set_const,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070042 int(sd_bus_error*, const char*, const char*));
43 MOCK_METHOD1(sd_bus_error_get_errno, int(const sd_bus_error*));
44 MOCK_METHOD2(sd_bus_error_set_errno, int(sd_bus_error*, int));
45 MOCK_METHOD1(sd_bus_error_is_set, int(const sd_bus_error*));
46 MOCK_METHOD1(sd_bus_error_free, void(sd_bus_error*));
Patrick Venture263712f2018-04-16 14:19:08 -070047
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070048 MOCK_METHOD1(sd_bus_get_event, sd_event*(sd_bus*));
49 MOCK_METHOD1(sd_bus_get_fd, int(sd_bus*));
50 MOCK_METHOD2(sd_bus_get_unique_name, int(sd_bus*, const char**));
Patrick Ventureff095682018-04-13 20:54:32 -070051
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070052 MOCK_METHOD3(sd_bus_list_names, int(sd_bus*, char***, char***));
Patrick Ventureff095682018-04-13 20:54:32 -070053
Patrick Venturedba73d72018-04-12 14:14:42 -070054 MOCK_METHOD3(sd_bus_message_append_basic,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070055 int(sd_bus_message*, char, const void*));
56 MOCK_METHOD2(sd_bus_message_at_end, int(sd_bus_message*, int));
57 MOCK_METHOD1(sd_bus_message_close_container, int(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070058 MOCK_METHOD3(sd_bus_message_enter_container,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070059 int(sd_bus_message*, char, const char*));
60 MOCK_METHOD1(sd_bus_message_exit_container, int(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070061
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070062 MOCK_METHOD1(sd_bus_message_get_bus, sd_bus*(sd_bus_message*));
William A. Kennington III8e8d1a62018-10-14 23:24:25 -070063 MOCK_METHOD2(sd_bus_message_get_type, int(sd_bus_message*, uint8_t*));
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070064 MOCK_METHOD2(sd_bus_message_get_cookie, int(sd_bus_message*, uint64_t*));
William A. Kennington III209dfc62018-10-14 23:26:18 -070065 MOCK_METHOD2(sd_bus_message_get_reply_cookie,
66 int(sd_bus_message*, uint64_t*));
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070067 MOCK_METHOD1(sd_bus_message_get_destination, const char*(sd_bus_message*));
68 MOCK_METHOD1(sd_bus_message_get_interface, const char*(sd_bus_message*));
69 MOCK_METHOD1(sd_bus_message_get_member, const char*(sd_bus_message*));
70 MOCK_METHOD1(sd_bus_message_get_path, const char*(sd_bus_message*));
71 MOCK_METHOD1(sd_bus_message_get_sender, const char*(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070072 MOCK_METHOD2(sd_bus_message_get_signature,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070073 const char*(sd_bus_message*, int));
74 MOCK_METHOD1(sd_bus_message_get_errno, int(sd_bus_message*));
Lei YUc08cf522019-06-10 14:55:17 +080075 MOCK_METHOD1(sd_bus_message_get_error,
76 const sd_bus_error*(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070077
78 MOCK_METHOD3(sd_bus_message_is_method_call,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070079 int(sd_bus_message*, const char*, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -070080 MOCK_METHOD2(sd_bus_message_is_method_error,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070081 int(sd_bus_message*, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -070082 MOCK_METHOD3(sd_bus_message_is_signal,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070083 int(sd_bus_message*, const char*, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -070084
Patrick Ventureff095682018-04-13 20:54:32 -070085 MOCK_METHOD6(sd_bus_message_new_method_call,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070086 int(sd_bus*, sd_bus_message**, const char*, const char*,
87 const char*, const char*));
Patrick Ventureff095682018-04-13 20:54:32 -070088
Patrick Venturedba73d72018-04-12 14:14:42 -070089 MOCK_METHOD2(sd_bus_message_new_method_return,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070090 int(sd_bus_message*, sd_bus_message**));
Patrick Ventureff095682018-04-13 20:54:32 -070091
William A. Kennington IIIf534ba02020-06-25 00:20:55 -070092 MOCK_METHOD4(sd_bus_message_new_method_error,
93 int(sd_bus_message* call, sd_bus_message** m, const char* name,
94 const char* description));
95
Vernon Mauery2b74e522018-10-02 14:55:39 -070096 MOCK_METHOD4(sd_bus_message_new_method_errno,
97 int(sd_bus_message* call, sd_bus_message** m, int error,
98 const sd_bus_error* p));
99
Patrick Ventureff095682018-04-13 20:54:32 -0700100 MOCK_METHOD5(sd_bus_message_new_signal,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700101 int(sd_bus*, sd_bus_message**, const char*, const char*,
102 const char*));
Patrick Ventureff095682018-04-13 20:54:32 -0700103
104 MOCK_METHOD3(sd_bus_message_open_container,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700105 int(sd_bus_message*, char, const char*));
Patrick Ventureff095682018-04-13 20:54:32 -0700106
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700107 MOCK_METHOD3(sd_bus_message_read_basic, int(sd_bus_message*, char, void*));
108 MOCK_METHOD1(sd_bus_message_ref, sd_bus_message*(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -0700109
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700110 MOCK_METHOD2(sd_bus_message_skip, int(sd_bus_message*, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -0700111 MOCK_METHOD3(sd_bus_message_verify_type,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700112 int(sd_bus_message*, char, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -0700113
William A. Kennington III472b7022021-04-15 13:13:14 -0700114 MOCK_METHOD(int, sd_bus_slot_set_destroy_callback,
115 (sd_bus_slot*, sd_bus_destroy_t), (override));
116 MOCK_METHOD(void*, sd_bus_slot_set_userdata, (sd_bus_slot*, void*),
117 (override));
118
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700119 MOCK_METHOD2(sd_bus_process, int(sd_bus*, sd_bus_message**));
120 MOCK_METHOD1(sd_bus_ref, sd_bus*(sd_bus*));
121 MOCK_METHOD3(sd_bus_request_name, int(sd_bus*, const char*, uint64_t));
122 MOCK_METHOD3(sd_bus_send, int(sd_bus*, sd_bus_message*, uint64_t*));
123 MOCK_METHOD1(sd_bus_unref, sd_bus*(sd_bus*));
Brad Bishopdfbff6f2018-12-05 19:46:20 -0500124 MOCK_METHOD1(sd_bus_flush_close_unref, sd_bus*(sd_bus*));
William A. Kennington III42f6ad52018-12-19 17:32:30 -0800125 MOCK_METHOD1(sd_bus_flush, int(sd_bus*));
126 MOCK_METHOD1(sd_bus_close, void(sd_bus*));
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700127 MOCK_METHOD2(sd_bus_wait, int(sd_bus*, uint64_t));
Patrick Venturedba73d72018-04-12 14:14:42 -0700128};
129
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700130inline bus::bus get_mocked_new(SdBusMock* sdbus)
Patrick Ventureead7ea72018-04-16 11:38:16 -0700131{
132 using ::testing::IsNull;
133 using ::testing::Return;
134
135 EXPECT_CALL(*sdbus, sd_bus_ref(IsNull())).WillRepeatedly(Return(nullptr));
136 bus::bus bus_mock(nullptr, sdbus);
137
138 return bus_mock;
139}
140
Patrick Venturedba73d72018-04-12 14:14:42 -0700141} // namespace sdbusplus