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&) = delete; 34 35 ~MockBleAdvertisingManager() override = default; 36 37 static void Initialize(); 38 static void CleanUp(); 39 static MockBleAdvertisingManager* Get(); 40 41 MOCK_METHOD((void), StartAdvertising, 42 (uint8_t advertiser_id, ::BleAdvertiserInterface::StatusCallback cb, 43 ::AdvertiseParameters params, std::vector<uint8_t> advertise_data, 44 std::vector<uint8_t> scan_response_data, int timeout_s, 45 ::BleAdvertiserInterface::StatusCallback timeout_cb), 46 (override)); 47 MOCK_METHOD((void), StartAdvertisingSet, 48 (uint8_t client_id, int reg_id, 49 ::BleAdvertiserInterface::IdTxPowerStatusCallback register_cb, 50 ::AdvertiseParameters params, std::vector<uint8_t> advertise_data, 51 std::vector<uint8_t> scan_response_data, 52 ::PeriodicAdvertisingParameters periodic_params, std::vector<uint8_t> periodic_data, 53 uint16_t duration, uint8_t maxExtAdvEvents, IdStatusCallback timeout_cb), 54 (override)); 55 MOCK_METHOD((void), RegisterAdvertiser, (::BleAdvertiserInterface::IdStatusCallback cb), 56 (override)); 57 MOCK_METHOD((void), Enable, 58 (uint8_t advertiser_id, bool enable, ::BleAdvertiserInterface::StatusCallback cb, 59 uint16_t duration, uint8_t maxExtAdvEvents, 60 ::BleAdvertiserInterface::StatusCallback timeout_cb), 61 (override)); 62 MOCK_METHOD((void), SetParameters, 63 (uint8_t advertiser_id, ::AdvertiseParameters params, 64 ::BleAdvertiserInterface::ParametersCallback cb), 65 (override)); 66 MOCK_METHOD((void), SetData, 67 (int advertiser_id, bool set_scan_rsp, std::vector<uint8_t> data, 68 ::BleAdvertiserInterface::StatusCallback cb), 69 (override)); 70 MOCK_METHOD((void), SetPeriodicAdvertisingParameters, 71 (int advertiser_id, ::PeriodicAdvertisingParameters periodic_params, 72 ::BleAdvertiserInterface::StatusCallback cb), 73 (override)); 74 MOCK_METHOD((void), SetPeriodicAdvertisingData, 75 (int advertiser_id, std::vector<uint8_t> data, 76 ::BleAdvertiserInterface::StatusCallback cb), 77 (override)); 78 MOCK_METHOD((void), SetPeriodicAdvertisingEnable, 79 (int advertiser_id, bool enable, bool include_adi, 80 ::BleAdvertiserInterface::StatusCallback cb), 81 (override)); 82 MOCK_METHOD((void), Unregister, (uint8_t advertiser_id), (override)); 83 MOCK_METHOD((void), GetOwnAddress, 84 (uint8_t advertiser_id, ::BleAdvertiserInterface::GetAddressCallback cb), (override)); 85 MOCK_METHOD((void), RegisterCallbacks, (::AdvertisingCallbacks * callbacks), (override)); 86 MOCK_METHOD((void), RegisterCallbacksNative, 87 (::AdvertisingCallbacks * callbacks, uint8_t client_id), (override)); 88 }; 89