1 /*
2  * Copyright 2021 HIMSA II K/S - www.himsa.com.
3  * Represented by EHIMA - www.ehima.com
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #pragma once
19 
20 #include <base/functional/bind.h>
21 #include <base/functional/callback.h>
22 #include <base/memory/weak_ptr.h>
23 #include <gmock/gmock.h>
24 
25 #include <vector>
26 
27 #include "include/hardware/ble_advertiser.h"
28 
29 class MockBleAdvertisingManager : public BleAdvertiserInterface {
30  public:
31   MockBleAdvertisingManager() = default;
32   MockBleAdvertisingManager(const MockBleAdvertisingManager&) = delete;
33   MockBleAdvertisingManager& operator=(const MockBleAdvertisingManager&) =
34       delete;
35 
36   ~MockBleAdvertisingManager() override = default;
37 
38   static void Initialize();
39   static void CleanUp();
40   static MockBleAdvertisingManager* Get();
41 
42   MOCK_METHOD((void), StartAdvertising,
43               (uint8_t advertiser_id, StatusCallback cb,
44                AdvertiseParameters params, std::vector<uint8_t> advertise_data,
45                std::vector<uint8_t> scan_response_data, int timeout_s,
46                StatusCallback timeout_cb),
47               (override));
48   MOCK_METHOD((void), StartAdvertisingSet,
49               (uint8_t client_id, int reg_id,
50                IdTxPowerStatusCallback register_cb, AdvertiseParameters params,
51                std::vector<uint8_t> advertise_data,
52                std::vector<uint8_t> scan_response_data,
53                PeriodicAdvertisingParameters periodic_params,
54                std::vector<uint8_t> periodic_data, uint16_t duration,
55                uint8_t maxExtAdvEvents, IdStatusCallback timeout_cb),
56               (override));
57   MOCK_METHOD((void), RegisterAdvertiser, (IdStatusCallback cb), (override));
58   MOCK_METHOD((void), Enable,
59               (uint8_t advertiser_id, bool enable, StatusCallback cb,
60                uint16_t duration, uint8_t maxExtAdvEvents,
61                StatusCallback timeout_cb),
62               (override));
63   MOCK_METHOD((void), SetParameters,
64               (uint8_t advertiser_id, AdvertiseParameters params,
65                ParametersCallback cb),
66               (override));
67   MOCK_METHOD((void), SetData,
68               (int advertiser_id, bool set_scan_rsp, std::vector<uint8_t> data,
69                StatusCallback cb),
70               (override));
71   MOCK_METHOD((void), SetPeriodicAdvertisingParameters,
72               (int advertiser_id, PeriodicAdvertisingParameters periodic_params,
73                StatusCallback cb),
74               (override));
75   MOCK_METHOD((void), SetPeriodicAdvertisingData,
76               (int advertiser_id, std::vector<uint8_t> data, StatusCallback cb),
77               (override));
78   MOCK_METHOD((void), SetPeriodicAdvertisingEnable,
79               (int advertiser_id, bool enable, bool include_adi,
80                StatusCallback cb),
81               (override));
82   MOCK_METHOD((void), Unregister, (uint8_t advertiser_id), (override));
83   MOCK_METHOD((void), GetOwnAddress,
84               (uint8_t advertiser_id, GetAddressCallback cb), (override));
85   MOCK_METHOD((void), RegisterCallbacks, (AdvertisingCallbacks * callbacks),
86               (override));
87   MOCK_METHOD((void), RegisterCallbacksNative,
88               (AdvertisingCallbacks * callbacks, uint8_t client_id),
89               (override));
90 };
91