1 /**
2  * Copyright (c) 2022, The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
19 #include <android/hidl/manager/1.0/IServiceManager.h>
20 #include <gmock/gmock.h>
21 #include <hidl/HidlSupport.h>
22 #include <hidl/Status.h>
23 
24 namespace android {
25 namespace automotive {
26 namespace watchdog {
27 
28 class MockHidlServiceManager : public android::hidl::manager::V1_0::IServiceManager {
29 public:
30     using IServiceManager = android::hidl::manager::V1_0::IServiceManager;
31     using IBase = android::hidl::base::V1_0::IBase;
32     template <typename T>
33     using Return = android::hardware::Return<T>;
34     using String = const android::hardware::hidl_string&;
35     ~MockHidlServiceManager() = default;
36 
37 #define MOCK_METHOD_CB(name) MOCK_METHOD1(name, Return<void>(IServiceManager::name##_cb))
38 
39     MOCK_METHOD2(get, Return<android::sp<IBase>>(String, String));
40     MOCK_METHOD2(add, Return<bool>(String, const android::sp<IBase>&));
41     MOCK_METHOD2(getTransport, Return<IServiceManager::Transport>(String, String));
42     MOCK_METHOD_CB(list);
43     MOCK_METHOD2(listByInterface, Return<void>(String, listByInterface_cb));
44     MOCK_METHOD3(registerForNotifications,
45                  Return<bool>(String, String,
46                               const sp<android::hidl::manager::V1_0::IServiceNotification>&));
47     MOCK_METHOD_CB(debugDump);
48     MOCK_METHOD2(registerPassthroughClient, Return<void>(String, String));
49     MOCK_METHOD_CB(interfaceChain);
50     MOCK_METHOD2(debug,
51                  Return<void>(const android::hardware::hidl_handle&,
52                               const android::hardware::hidl_vec<android::hardware::hidl_string>&));
53     MOCK_METHOD_CB(interfaceDescriptor);
54     MOCK_METHOD_CB(getHashChain);
55     MOCK_METHOD0(setHalInstrumentation, Return<void>());
56     MOCK_METHOD2(linkToDeath,
57                  Return<bool>(const sp<android::hardware::hidl_death_recipient>&, uint64_t));
58     MOCK_METHOD0(ping, Return<void>());
59     MOCK_METHOD_CB(getDebugInfo);
60     MOCK_METHOD0(notifySyspropsChanged, Return<void>());
61     MOCK_METHOD1(unlinkToDeath, Return<bool>(const sp<android::hardware::hidl_death_recipient>&));
62 };
63 
64 }  // namespace watchdog
65 }  // namespace automotive
66 }  // namespace android
67