1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "softbus_ble_mock.h"
17
18 #include "disc_log.h"
19 #include "softbus_error_code.h"
20 #include "softbus_adapter_sle_common_struct.h"
21
22 ManagerMock *ManagerMock::managerMock = nullptr;
23 const SoftbusBroadcastCallback *ManagerMock::broadcastCallback = nullptr;
24 const SoftbusScanCallback *ManagerMock::scanCallback = nullptr;
25
26 static int32_t g_advId = 0;
27 static int32_t g_listenerId = 0;
28 static void ActionOfSoftbusBleAdapterInit(void);
29
ActionOfSoftBusAddBtStateListener(const SoftBusBtStateListener * listener,int32_t * listenerId)30 int32_t ActionOfSoftBusAddBtStateListener(const SoftBusBtStateListener *listener, int32_t *listenerId)
31 {
32 return SOFTBUS_OK;
33 }
34
ActionOfSoftBusRemoveBtStateListener(int32_t listenerId)35 int32_t ActionOfSoftBusRemoveBtStateListener(int32_t listenerId)
36 {
37 return SOFTBUS_OK;
38 }
39
ManagerMock()40 ManagerMock::ManagerMock()
41 {
42 ManagerMock::managerMock = this;
43 EXPECT_CALL(*this, SoftbusBleAdapterInit).WillRepeatedly(ActionOfSoftbusBleAdapterInit);
44 EXPECT_CALL(*this, SoftBusAddBtStateListener).WillRepeatedly(ActionOfSoftBusAddBtStateListener);
45 EXPECT_CALL(*this, SoftBusRemoveBtStateListener).WillRepeatedly(ActionOfSoftBusRemoveBtStateListener);
46 }
47
~ManagerMock()48 ManagerMock::~ManagerMock()
49 {
50 ManagerMock::managerMock = nullptr;
51 }
52
GetMock()53 ManagerMock *ManagerMock::GetMock()
54 {
55 return managerMock;
56 }
57
SoftbusBleAdapterInit()58 void SoftbusBleAdapterInit()
59 {
60 ManagerMock::GetMock()->SoftbusBleAdapterInit();
61 }
62
MockInit(void)63 static int32_t MockInit(void)
64 {
65 return SOFTBUS_OK;
66 }
67
MockDeInit(void)68 static int32_t MockDeInit(void)
69 {
70 return SOFTBUS_OK;
71 }
72
SoftBusAddBtStateListener(const SoftBusBtStateListener * listener,int32_t * listenerId)73 int32_t SoftBusAddBtStateListener(const SoftBusBtStateListener *listener, int32_t *listenerId)
74 {
75 return ManagerMock::GetMock()->SoftBusAddBtStateListener(listener, listenerId);
76 }
77
SoftBusRemoveBtStateListener(int32_t listenerId)78 int32_t SoftBusRemoveBtStateListener(int32_t listenerId)
79 {
80 return ManagerMock::GetMock()->SoftBusRemoveBtStateListener(listenerId);
81 }
82
BleAsyncCallbackDelayHelper(SoftBusLooper * looper,BleAsyncCallbackFunc callback,void * para,uint64_t delayMillis)83 int32_t BleAsyncCallbackDelayHelper(SoftBusLooper *looper, BleAsyncCallbackFunc callback,
84 void *para, uint64_t delayMillis)
85 {
86 return ManagerMock::GetMock()->BleAsyncCallbackDelayHelper(looper, callback, para, delayMillis);
87 }
88
SoftBusCondWait(SoftBusCond * cond,SoftBusMutex * mutex,SoftBusSysTime * time)89 int32_t SoftBusCondWait(SoftBusCond *cond, SoftBusMutex *mutex, SoftBusSysTime *time)
90 {
91 return ManagerMock::GetMock()->SoftBusCondWait(cond, mutex, time);
92 }
93
MockRegisterBroadcaster(int32_t * bcId,const SoftbusBroadcastCallback * cb)94 static int32_t MockRegisterBroadcaster(int32_t *bcId, const SoftbusBroadcastCallback *cb)
95 {
96 ManagerMock::broadcastCallback = cb;
97 *bcId = g_advId;
98 g_advId++;
99 return SOFTBUS_OK;
100 }
101
MockUnRegisterBroadcaster(int32_t bcId)102 static int32_t MockUnRegisterBroadcaster(int32_t bcId)
103 {
104 ManagerMock::broadcastCallback = nullptr;
105 g_advId--;
106 return SOFTBUS_OK;
107 }
108
MockRegisterScanListener(int32_t * scanerId,const SoftbusScanCallback * cb)109 static int32_t MockRegisterScanListener(int32_t *scanerId, const SoftbusScanCallback *cb)
110 {
111 ManagerMock::scanCallback = cb;
112 *scanerId = g_listenerId;
113 g_listenerId++;
114 return SOFTBUS_OK;
115 }
116
MockUnRegisterScanListener(int32_t scanerId)117 static int32_t MockUnRegisterScanListener(int32_t scanerId)
118 {
119 ManagerMock::scanCallback = nullptr;
120 g_listenerId--;
121 return SOFTBUS_OK;
122 }
123
MockStartBroadcasting(int32_t bcId,const SoftbusBroadcastParam * param,SoftbusBroadcastData * data)124 static int32_t MockStartBroadcasting(int32_t bcId, const SoftbusBroadcastParam *param, SoftbusBroadcastData *data)
125 {
126 ManagerMock::broadcastCallback->OnStartBroadcastingCallback(BROADCAST_PROTOCOL_BLE,
127 bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
128 return SOFTBUS_OK;
129 }
130
MockStopBroadcasting(int32_t bcId)131 static int32_t MockStopBroadcasting(int32_t bcId)
132 {
133 ManagerMock::broadcastCallback->OnStopBroadcastingCallback(BROADCAST_PROTOCOL_BLE,
134 bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
135 return SOFTBUS_OK;
136 }
137
MockSetBroadcastingData(int32_t bcId,const SoftbusBroadcastData * data)138 static int32_t MockSetBroadcastingData(int32_t bcId, const SoftbusBroadcastData *data)
139 {
140 ManagerMock::broadcastCallback->OnSetBroadcastingCallback(BROADCAST_PROTOCOL_BLE,
141 bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
142 return SOFTBUS_OK;
143 }
144
MockSetBroadcastingParam(int32_t bcId,const SoftbusBroadcastParam * param)145 static int32_t MockSetBroadcastingParam(int32_t bcId, const SoftbusBroadcastParam *param)
146 {
147 ManagerMock::broadcastCallback->OnSetBroadcastingParamCallback(BROADCAST_PROTOCOL_BLE,
148 bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
149 return SOFTBUS_OK;
150 }
151
MockEnableBroadcasting(int32_t bcId)152 static int32_t MockEnableBroadcasting(int32_t bcId)
153 {
154 ManagerMock::broadcastCallback->OnEnableBroadcastingCallback(BROADCAST_PROTOCOL_BLE,
155 bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
156 return SOFTBUS_OK;
157 }
158
MockDisableBroadcasting(int32_t bcId)159 static int32_t MockDisableBroadcasting(int32_t bcId)
160 {
161 ManagerMock::broadcastCallback->OnDisableBroadcastingCallback(BROADCAST_PROTOCOL_BLE,
162 bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
163 return SOFTBUS_OK;
164 }
165
MockUpdateBroadcasting(int32_t bcId,const SoftbusBroadcastParam * param,SoftbusBroadcastData * data)166 static int32_t MockUpdateBroadcasting(
167 int32_t bcId, const SoftbusBroadcastParam *param, SoftbusBroadcastData *data)
168 {
169 ManagerMock::broadcastCallback->OnUpdateBroadcastingCallback(BROADCAST_PROTOCOL_BLE,
170 bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
171 return SOFTBUS_OK;
172 }
173
MockStartScan(int32_t scanerId,const SoftBusBcScanParams * param,const SoftBusBcScanFilter * scanFilter,int32_t filterSize)174 static int32_t MockStartScan(
175 int32_t scanerId, const SoftBusBcScanParams *param, const SoftBusBcScanFilter *scanFilter, int32_t filterSize)
176 {
177 return SOFTBUS_OK;
178 }
179
MockStopScan(int32_t scanerId)180 static int32_t MockStopScan(int32_t scanerId)
181 {
182 return SOFTBUS_OK;
183 }
184
MockSetScanParams(int32_t scannerId,const SoftBusBcScanParams * param,const SoftBusBcScanFilter * scanFilter,int32_t filterSize,SoftbusSetFilterCmd cmdId)185 static int32_t MockSetScanParams(int32_t scannerId, const SoftBusBcScanParams *param,
186 const SoftBusBcScanFilter *scanFilter, int32_t filterSize, SoftbusSetFilterCmd cmdId)
187 {
188 return SOFTBUS_OK;
189 }
190
MockIsLpDeviceAvailable(void)191 static bool MockIsLpDeviceAvailable(void)
192 {
193 return true;
194 }
195
MockSetAdvFilterParam(LpServerType type,const SoftBusLpBroadcastParam * bcParam,const SoftBusLpScanParam * scanParam)196 static bool MockSetAdvFilterParam(
197 LpServerType type, const SoftBusLpBroadcastParam *bcParam, const SoftBusLpScanParam *scanParam)
198 {
199 return SOFTBUS_OK;
200 }
201
MockGetBroadcastHandle(int32_t bcId,int32_t * bcHandle)202 static int32_t MockGetBroadcastHandle(int32_t bcId, int32_t *bcHandle)
203 {
204 return SOFTBUS_OK;
205 }
206
MockEnableSyncDataToLpDevice(void)207 static int32_t MockEnableSyncDataToLpDevice(void)
208 {
209 return SOFTBUS_OK;
210 }
211
MockDisableSyncDataToLpDevice(void)212 static int32_t MockDisableSyncDataToLpDevice(void)
213 {
214 return SOFTBUS_OK;
215 }
216
MockSetScanReportChannelToLpDevice(int32_t scannerId,bool enable)217 static int32_t MockSetScanReportChannelToLpDevice(int32_t scannerId, bool enable)
218 {
219 return SOFTBUS_OK;
220 }
221
MockSetLpDeviceParam(int32_t duration,int32_t maxExtAdvEvents,int32_t window,int32_t interval,int32_t bcHandle)222 static int32_t MockSetLpDeviceParam(
223 int32_t duration, int32_t maxExtAdvEvents, int32_t window, int32_t interval, int32_t bcHandle)
224 {
225 return SOFTBUS_OK;
226 }
227
ActionOfSoftbusBleAdapterInit()228 static void ActionOfSoftbusBleAdapterInit()
229 {
230 DISC_LOGI(DISC_TEST, "enter");
231 static SoftbusBroadcastMediumInterface interface = {
232 .Init = MockInit,
233 .DeInit = MockDeInit,
234 .RegisterBroadcaster = MockRegisterBroadcaster,
235 .UnRegisterBroadcaster = MockUnRegisterBroadcaster,
236 .RegisterScanListener = MockRegisterScanListener,
237 .UnRegisterScanListener = MockUnRegisterScanListener,
238 .StartBroadcasting = MockStartBroadcasting,
239 .StopBroadcasting = MockStopBroadcasting,
240 .SetBroadcastingData = MockSetBroadcastingData,
241 .SetBroadcastingParam = MockSetBroadcastingParam,
242 .EnableBroadcasting = MockEnableBroadcasting,
243 .DisableBroadcasting = MockDisableBroadcasting,
244 .UpdateBroadcasting = MockUpdateBroadcasting,
245 .StartScan = MockStartScan,
246 .StopScan = MockStopScan,
247 .SetScanParams = MockSetScanParams,
248 .IsLpDeviceAvailable = MockIsLpDeviceAvailable,
249 .SetAdvFilterParam = MockSetAdvFilterParam,
250 .GetBroadcastHandle = MockGetBroadcastHandle,
251 .EnableSyncDataToLpDevice = MockEnableSyncDataToLpDevice,
252 .DisableSyncDataToLpDevice = MockDisableSyncDataToLpDevice,
253 .SetScanReportChannelToLpDevice = MockSetScanReportChannelToLpDevice,
254 .SetLpDeviceParam = MockSetLpDeviceParam,
255 };
256 if (RegisterBroadcastMediumFunction(BROADCAST_PROTOCOL_BLE, &interface) != 0) {
257 DISC_LOGE(DISC_TEST, "Register gatt interface failed.");
258 }
259 }
260
SoftbusBleAdapterDeInit(void)261 void SoftbusBleAdapterDeInit(void)
262 {
263 DISC_LOGI(DISC_TEST, "enter");
264 }
265
266 extern "C" {
SoftbusSleAdapterInitPacked(void)267 void SoftbusSleAdapterInitPacked(void)
268 {
269 DISC_LOGI(DISC_TEST, "enter");
270 }
271
SoftbusSleAdapterDeInitPacked(void)272 void SoftbusSleAdapterDeInitPacked(void)
273 {
274 DISC_LOGI(DISC_TEST, "enter");
275 }
276
SoftBusAddSleStateListenerPacked(const SoftBusSleStateListener * listener,int32_t * listenerId)277 int32_t SoftBusAddSleStateListenerPacked(const SoftBusSleStateListener *listener, int32_t *listenerId)
278 {
279 DISC_LOGI(DISC_TEST, "enter");
280 (void)listener;
281 (void)listenerId;
282 return SOFTBUS_OK;
283 }
284
SoftBusRemoveSleStateListenerPacked(int listenerId)285 void SoftBusRemoveSleStateListenerPacked(int listenerId)
286 {
287 DISC_LOGI(DISC_TEST, "enter");
288 (void)listenerId;
289 }
290 }