blob: 2386a4dfd12416c8ac09886f20bb6517c58a351b [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**));
24 MOCK_METHOD1(sd_bus_detach_event, int(sd_bus*));
Patrick Ventureff095682018-04-13 20:54:32 -070025
26 MOCK_METHOD3(sd_bus_emit_interfaces_added_strv,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070027 int(sd_bus*, const char*, char**));
Patrick Ventureff095682018-04-13 20:54:32 -070028 MOCK_METHOD3(sd_bus_emit_interfaces_removed_strv,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070029 int(sd_bus*, const char*, char**));
30 MOCK_METHOD2(sd_bus_emit_object_added, int(sd_bus*, const char*));
31 MOCK_METHOD2(sd_bus_emit_object_removed, int(sd_bus*, const char*));
Patrick Venture540946e2018-04-16 13:17:51 -070032 MOCK_METHOD4(sd_bus_emit_properties_changed_strv,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070033 int(sd_bus*, const char*, const char*, char**));
Patrick Ventureff095682018-04-13 20:54:32 -070034
William A. Kennington III65654542018-10-11 15:17:31 -070035 MOCK_METHOD3(sd_bus_error_set,
36 int(sd_bus_error*, const char*, const char*));
Patrick Venture263712f2018-04-16 14:19:08 -070037 MOCK_METHOD3(sd_bus_error_set_const,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070038 int(sd_bus_error*, const char*, const char*));
39 MOCK_METHOD1(sd_bus_error_get_errno, int(const sd_bus_error*));
40 MOCK_METHOD2(sd_bus_error_set_errno, int(sd_bus_error*, int));
41 MOCK_METHOD1(sd_bus_error_is_set, int(const sd_bus_error*));
42 MOCK_METHOD1(sd_bus_error_free, void(sd_bus_error*));
Patrick Venture263712f2018-04-16 14:19:08 -070043
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070044 MOCK_METHOD1(sd_bus_get_event, sd_event*(sd_bus*));
45 MOCK_METHOD1(sd_bus_get_fd, int(sd_bus*));
46 MOCK_METHOD2(sd_bus_get_unique_name, int(sd_bus*, const char**));
Patrick Ventureff095682018-04-13 20:54:32 -070047
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070048 MOCK_METHOD3(sd_bus_list_names, int(sd_bus*, char***, char***));
Patrick Ventureff095682018-04-13 20:54:32 -070049
Patrick Venturedba73d72018-04-12 14:14:42 -070050 MOCK_METHOD3(sd_bus_message_append_basic,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070051 int(sd_bus_message*, char, const void*));
52 MOCK_METHOD2(sd_bus_message_at_end, int(sd_bus_message*, int));
53 MOCK_METHOD1(sd_bus_message_close_container, int(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070054 MOCK_METHOD3(sd_bus_message_enter_container,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070055 int(sd_bus_message*, char, const char*));
56 MOCK_METHOD1(sd_bus_message_exit_container, int(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070057
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070058 MOCK_METHOD1(sd_bus_message_get_bus, sd_bus*(sd_bus_message*));
William A. Kennington III8e8d1a62018-10-14 23:24:25 -070059 MOCK_METHOD2(sd_bus_message_get_type, int(sd_bus_message*, uint8_t*));
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070060 MOCK_METHOD2(sd_bus_message_get_cookie, int(sd_bus_message*, uint64_t*));
William A. Kennington III209dfc62018-10-14 23:26:18 -070061 MOCK_METHOD2(sd_bus_message_get_reply_cookie,
62 int(sd_bus_message*, uint64_t*));
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070063 MOCK_METHOD1(sd_bus_message_get_destination, const char*(sd_bus_message*));
64 MOCK_METHOD1(sd_bus_message_get_interface, const char*(sd_bus_message*));
65 MOCK_METHOD1(sd_bus_message_get_member, const char*(sd_bus_message*));
66 MOCK_METHOD1(sd_bus_message_get_path, const char*(sd_bus_message*));
67 MOCK_METHOD1(sd_bus_message_get_sender, const char*(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070068 MOCK_METHOD2(sd_bus_message_get_signature,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070069 const char*(sd_bus_message*, int));
70 MOCK_METHOD1(sd_bus_message_get_errno, int(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070071
72 MOCK_METHOD3(sd_bus_message_is_method_call,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070073 int(sd_bus_message*, const char*, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -070074 MOCK_METHOD2(sd_bus_message_is_method_error,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070075 int(sd_bus_message*, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -070076 MOCK_METHOD3(sd_bus_message_is_signal,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070077 int(sd_bus_message*, const char*, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -070078
Patrick Ventureff095682018-04-13 20:54:32 -070079 MOCK_METHOD6(sd_bus_message_new_method_call,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070080 int(sd_bus*, sd_bus_message**, const char*, const char*,
81 const char*, const char*));
Patrick Ventureff095682018-04-13 20:54:32 -070082
Patrick Venturedba73d72018-04-12 14:14:42 -070083 MOCK_METHOD2(sd_bus_message_new_method_return,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070084 int(sd_bus_message*, sd_bus_message**));
Patrick Ventureff095682018-04-13 20:54:32 -070085
Vernon Mauery2b74e522018-10-02 14:55:39 -070086 MOCK_METHOD4(sd_bus_message_new_method_errno,
87 int(sd_bus_message* call, sd_bus_message** m, int error,
88 const sd_bus_error* p));
89
Patrick Ventureff095682018-04-13 20:54:32 -070090 MOCK_METHOD5(sd_bus_message_new_signal,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070091 int(sd_bus*, sd_bus_message**, const char*, const char*,
92 const char*));
Patrick Ventureff095682018-04-13 20:54:32 -070093
94 MOCK_METHOD3(sd_bus_message_open_container,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070095 int(sd_bus_message*, char, const char*));
Patrick Ventureff095682018-04-13 20:54:32 -070096
William A. Kennington IIIe0d69652018-08-31 13:09:47 -070097 MOCK_METHOD3(sd_bus_message_read_basic, int(sd_bus_message*, char, void*));
98 MOCK_METHOD1(sd_bus_message_ref, sd_bus_message*(sd_bus_message*));
Patrick Venturedba73d72018-04-12 14:14:42 -070099
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700100 MOCK_METHOD2(sd_bus_message_skip, int(sd_bus_message*, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -0700101 MOCK_METHOD3(sd_bus_message_verify_type,
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700102 int(sd_bus_message*, char, const char*));
Patrick Venturedba73d72018-04-12 14:14:42 -0700103
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700104 MOCK_METHOD2(sd_bus_process, int(sd_bus*, sd_bus_message**));
105 MOCK_METHOD1(sd_bus_ref, sd_bus*(sd_bus*));
106 MOCK_METHOD3(sd_bus_request_name, int(sd_bus*, const char*, uint64_t));
107 MOCK_METHOD3(sd_bus_send, int(sd_bus*, sd_bus_message*, uint64_t*));
108 MOCK_METHOD1(sd_bus_unref, sd_bus*(sd_bus*));
109 MOCK_METHOD2(sd_bus_wait, int(sd_bus*, uint64_t));
Patrick Venturedba73d72018-04-12 14:14:42 -0700110};
111
William A. Kennington IIIe0d69652018-08-31 13:09:47 -0700112inline bus::bus get_mocked_new(SdBusMock* sdbus)
Patrick Ventureead7ea72018-04-16 11:38:16 -0700113{
114 using ::testing::IsNull;
115 using ::testing::Return;
116
117 EXPECT_CALL(*sdbus, sd_bus_ref(IsNull())).WillRepeatedly(Return(nullptr));
118 bus::bus bus_mock(nullptr, sdbus);
119
120 return bus_mock;
121}
122
Patrick Venturedba73d72018-04-12 14:14:42 -0700123} // namespace sdbusplus