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
21 ManagerMock *ManagerMock::managerMock = nullptr;
22 const SoftbusBroadcastCallback *ManagerMock::broadcastCallback = nullptr;
23 const SoftbusScanCallback *ManagerMock::scanCallback = nullptr;
24
25 static int32_t g_advId = 0;
26 static int32_t g_listenerId = 0;
27 static void ActionOfSoftbusBleAdapterInit(void);
28
ActionOfSoftBusAddBtStateListener(const SoftBusBtStateListener * listener,int32_t * listenerId)29 int32_t ActionOfSoftBusAddBtStateListener(const SoftBusBtStateListener *listener, int32_t *listenerId)
30 {
31 return SOFTBUS_OK;
32 }
33
ActionOfSoftBusRemoveBtStateListener(int32_t listenerId)34 int32_t ActionOfSoftBusRemoveBtStateListener(int32_t listenerId)
35 {
36 return SOFTBUS_OK;
37 }
38
ManagerMock()39 ManagerMock::ManagerMock()
40 {
41 ManagerMock::managerMock = this;
42 EXPECT_CALL(*this, SoftbusBleAdapterInit).WillRepeatedly(ActionOfSoftbusBleAdapterInit);
43 EXPECT_CALL(*this, SoftBusAddBtStateListener).WillRepeatedly(ActionOfSoftBusAddBtStateListener);
44 EXPECT_CALL(*this, SoftBusRemoveBtStateListener).WillRepeatedly(ActionOfSoftBusRemoveBtStateListener);
45 }
46
~ManagerMock()47 ManagerMock::~ManagerMock()
48 {
49 ManagerMock::managerMock = nullptr;
50 }
51
GetMock()52 ManagerMock *ManagerMock::GetMock()
53 {
54 return managerMock;
55 }
56
SoftbusBleAdapterInit()57 void SoftbusBleAdapterInit()
58 {
59 ManagerMock::GetMock()->SoftbusBleAdapterInit();
60 }
61
MockInit(void)62 static int32_t MockInit(void)
63 {
64 return SOFTBUS_OK;
65 }
66
MockDeInit(void)67 static int32_t MockDeInit(void)
68 {
69 return SOFTBUS_OK;
70 }
71
SoftBusAddBtStateListener(const SoftBusBtStateListener * listener,int32_t * listenerId)72 int32_t SoftBusAddBtStateListener(const SoftBusBtStateListener *listener, int32_t *listenerId)
73 {
74 return ManagerMock::GetMock()->SoftBusAddBtStateListener(listener, listenerId);
75 }
76
SoftBusRemoveBtStateListener(int32_t listenerId)77 int32_t SoftBusRemoveBtStateListener(int32_t listenerId)
78 {
79 return ManagerMock::GetMock()->SoftBusRemoveBtStateListener(listenerId);
80 }
81
BleAsyncCallbackDelayHelper(SoftBusLooper * looper,BleAsyncCallbackFunc callback,void * para,uint64_t delayMillis)82 int32_t BleAsyncCallbackDelayHelper(SoftBusLooper *looper, BleAsyncCallbackFunc callback,
83 void *para, uint64_t delayMillis)
84 {
85 return ManagerMock::GetMock()->BleAsyncCallbackDelayHelper(looper, callback, para, delayMillis);
86 }
87
SoftBusCondWait(SoftBusCond * cond,SoftBusMutex * mutex,SoftBusSysTime * time)88 int32_t SoftBusCondWait(SoftBusCond *cond, SoftBusMutex *mutex, SoftBusSysTime *time)
89 {
90 return ManagerMock::GetMock()->SoftBusCondWait(cond, mutex, time);
91 }
92
MockRegisterBroadcaster(int32_t * bcId,const SoftbusBroadcastCallback * cb)93 static int32_t MockRegisterBroadcaster(int32_t *bcId, const SoftbusBroadcastCallback *cb)
94 {
95 ManagerMock::broadcastCallback = cb;
96 *bcId = g_advId;
97 g_advId++;
98 return SOFTBUS_OK;
99 }
100
MockUnRegisterBroadcaster(int32_t bcId)101 static int32_t MockUnRegisterBroadcaster(int32_t bcId)
102 {
103 ManagerMock::broadcastCallback = nullptr;
104 g_advId--;
105 return SOFTBUS_OK;
106 }
107
MockRegisterScanListener(int32_t * scanerId,const SoftbusScanCallback * cb)108 static int32_t MockRegisterScanListener(int32_t *scanerId, const SoftbusScanCallback *cb)
109 {
110 ManagerMock::scanCallback = cb;
111 *scanerId = g_listenerId;
112 g_listenerId++;
113 return SOFTBUS_OK;
114 }
115
MockUnRegisterScanListener(int32_t scanerId)116 static int32_t MockUnRegisterScanListener(int32_t scanerId)
117 {
118 ManagerMock::scanCallback = nullptr;
119 g_listenerId--;
120 return SOFTBUS_OK;
121 }
122
MockStartBroadcasting(int32_t bcId,const SoftbusBroadcastParam * param,const SoftbusBroadcastData * data)123 static int32_t MockStartBroadcasting(int32_t bcId, const SoftbusBroadcastParam *param, const SoftbusBroadcastData *data)
124 {
125 ManagerMock::broadcastCallback->OnStartBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
126 return SOFTBUS_OK;
127 }
128
MockStopBroadcasting(int32_t bcId)129 static int32_t MockStopBroadcasting(int32_t bcId)
130 {
131 ManagerMock::broadcastCallback->OnStopBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
132 return SOFTBUS_OK;
133 }
134
MockSetBroadcastingData(int32_t bcId,const SoftbusBroadcastData * data)135 static int32_t MockSetBroadcastingData(int32_t bcId, const SoftbusBroadcastData *data)
136 {
137 ManagerMock::broadcastCallback->OnSetBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
138 return SOFTBUS_OK;
139 }
140
MockSetBroadcastingParam(int32_t bcId,const SoftbusBroadcastParam * param)141 static int32_t MockSetBroadcastingParam(int32_t bcId, const SoftbusBroadcastParam *param)
142 {
143 ManagerMock::broadcastCallback->OnSetBroadcastingParamCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
144 return SOFTBUS_OK;
145 }
146
MockEnableBroadcasting(int32_t bcId)147 static int32_t MockEnableBroadcasting(int32_t bcId)
148 {
149 ManagerMock::broadcastCallback->OnEnableBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
150 return SOFTBUS_OK;
151 }
152
MockDisableBroadcasting(int32_t bcId)153 static int32_t MockDisableBroadcasting(int32_t bcId)
154 {
155 ManagerMock::broadcastCallback->OnDisableBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
156 return SOFTBUS_OK;
157 }
158
MockUpdateBroadcasting(int32_t bcId,const SoftbusBroadcastParam * param,const SoftbusBroadcastData * data)159 static int32_t MockUpdateBroadcasting(
160 int32_t bcId, const SoftbusBroadcastParam *param, const SoftbusBroadcastData *data)
161 {
162 ManagerMock::broadcastCallback->OnUpdateBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
163 return SOFTBUS_OK;
164 }
165
MockStartScan(int32_t scanerId,const SoftBusBcScanParams * param,const SoftBusBcScanFilter * scanFilter,int32_t filterSize)166 static int32_t MockStartScan(
167 int32_t scanerId, const SoftBusBcScanParams *param, const SoftBusBcScanFilter *scanFilter, int32_t filterSize)
168 {
169 return SOFTBUS_OK;
170 }
171
MockStopScan(int32_t scanerId)172 static int32_t MockStopScan(int32_t scanerId)
173 {
174 return SOFTBUS_OK;
175 }
176
MockSetScanParams(int32_t scannerId,const SoftBusBcScanParams * param,const SoftBusBcScanFilter * scanFilter,int32_t filterSize,SoftbusSetFilterCmd cmdId)177 static int32_t MockSetScanParams(int32_t scannerId, const SoftBusBcScanParams *param,
178 const SoftBusBcScanFilter *scanFilter, int32_t filterSize, SoftbusSetFilterCmd cmdId)
179 {
180 return SOFTBUS_OK;
181 }
182
MockIsLpDeviceAvailable(void)183 static bool MockIsLpDeviceAvailable(void)
184 {
185 return true;
186 }
187
MockSetAdvFilterParam(LpServerType type,const SoftBusLpBroadcastParam * bcParam,const SoftBusLpScanParam * scanParam)188 static bool MockSetAdvFilterParam(
189 LpServerType type, const SoftBusLpBroadcastParam *bcParam, const SoftBusLpScanParam *scanParam)
190 {
191 return SOFTBUS_OK;
192 }
193
MockGetBroadcastHandle(int32_t bcId,int32_t * bcHandle)194 static int32_t MockGetBroadcastHandle(int32_t bcId, int32_t *bcHandle)
195 {
196 return SOFTBUS_OK;
197 }
198
MockEnableSyncDataToLpDevice(void)199 static int32_t MockEnableSyncDataToLpDevice(void)
200 {
201 return SOFTBUS_OK;
202 }
203
MockDisableSyncDataToLpDevice(void)204 static int32_t MockDisableSyncDataToLpDevice(void)
205 {
206 return SOFTBUS_OK;
207 }
208
MockSetScanReportChannelToLpDevice(int32_t scannerId,bool enable)209 static int32_t MockSetScanReportChannelToLpDevice(int32_t scannerId, bool enable)
210 {
211 return SOFTBUS_OK;
212 }
213
MockSetLpDeviceParam(int32_t duration,int32_t maxExtAdvEvents,int32_t window,int32_t interval,int32_t bcHandle)214 static int32_t MockSetLpDeviceParam(
215 int32_t duration, int32_t maxExtAdvEvents, int32_t window, int32_t interval, int32_t bcHandle)
216 {
217 return SOFTBUS_OK;
218 }
219
ActionOfSoftbusBleAdapterInit()220 static void ActionOfSoftbusBleAdapterInit()
221 {
222 DISC_LOGI(DISC_TEST, "enter");
223 static SoftbusBroadcastMediumInterface interface = {
224 .Init = MockInit,
225 .DeInit = MockDeInit,
226 .RegisterBroadcaster = MockRegisterBroadcaster,
227 .UnRegisterBroadcaster = MockUnRegisterBroadcaster,
228 .RegisterScanListener = MockRegisterScanListener,
229 .UnRegisterScanListener = MockUnRegisterScanListener,
230 .StartBroadcasting = MockStartBroadcasting,
231 .StopBroadcasting = MockStopBroadcasting,
232 .SetBroadcastingData = MockSetBroadcastingData,
233 .SetBroadcastingParam = MockSetBroadcastingParam,
234 .EnableBroadcasting = MockEnableBroadcasting,
235 .DisableBroadcasting = MockDisableBroadcasting,
236 .UpdateBroadcasting = MockUpdateBroadcasting,
237 .StartScan = MockStartScan,
238 .StopScan = MockStopScan,
239 .SetScanParams = MockSetScanParams,
240 .IsLpDeviceAvailable = MockIsLpDeviceAvailable,
241 .SetAdvFilterParam = MockSetAdvFilterParam,
242 .GetBroadcastHandle = MockGetBroadcastHandle,
243 .EnableSyncDataToLpDevice = MockEnableSyncDataToLpDevice,
244 .DisableSyncDataToLpDevice = MockDisableSyncDataToLpDevice,
245 .SetScanReportChannelToLpDevice = MockSetScanReportChannelToLpDevice,
246 .SetLpDeviceParam = MockSetLpDeviceParam,
247 };
248 if (RegisterBroadcastMediumFunction(BROADCAST_MEDIUM_TYPE_BLE, &interface) != 0) {
249 DISC_LOGE(DISC_TEST, "Register gatt interface failed.");
250 }
251 }
252
SoftbusBleAdapterDeInit(void)253 void SoftbusBleAdapterDeInit(void)
254 {
255 DISC_LOGI(DISC_TEST, "enter");
256 }
257