• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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