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)29 int ActionOfSoftBusAddBtStateListener(const SoftBusBtStateListener *listener)
30 {
31 return SOFTBUS_OK;
32 }
33
ActionOfSoftBusRemoveBtStateListener(int listenerId)34 int ActionOfSoftBusRemoveBtStateListener(int 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)72 int SoftBusAddBtStateListener(const SoftBusBtStateListener *listener)
73 {
74 return ManagerMock::GetMock()->SoftBusAddBtStateListener(listener);
75 }
76
SoftBusRemoveBtStateListener(int listenerId)77 int SoftBusRemoveBtStateListener(int listenerId)
78 {
79 return ManagerMock::GetMock()->SoftBusRemoveBtStateListener(listenerId);
80 }
81
MockRegisterBroadcaster(int32_t * bcId,const SoftbusBroadcastCallback * cb)82 static int32_t MockRegisterBroadcaster(int32_t *bcId, const SoftbusBroadcastCallback *cb)
83 {
84 ManagerMock::broadcastCallback = cb;
85 *bcId = g_advId;
86 g_advId++;
87 return SOFTBUS_OK;
88 }
89
MockUnRegisterBroadcaster(int32_t bcId)90 static int32_t MockUnRegisterBroadcaster(int32_t bcId)
91 {
92 ManagerMock::broadcastCallback = nullptr;
93 g_advId--;
94 return SOFTBUS_OK;
95 }
96
MockRegisterScanListener(int32_t * scanerId,const SoftbusScanCallback * cb)97 static int32_t MockRegisterScanListener(int32_t *scanerId, const SoftbusScanCallback *cb)
98 {
99 ManagerMock::scanCallback = cb;
100 *scanerId = g_listenerId;
101 g_listenerId++;
102 return SOFTBUS_OK;
103 }
104
MockUnRegisterScanListener(int32_t scanerId)105 static int32_t MockUnRegisterScanListener(int32_t scanerId)
106 {
107 ManagerMock::scanCallback = nullptr;
108 g_listenerId--;
109 return SOFTBUS_OK;
110 }
111
MockStartBroadcasting(int32_t bcId,const SoftbusBroadcastParam * param,const SoftbusBroadcastData * data)112 static int32_t MockStartBroadcasting(int32_t bcId, const SoftbusBroadcastParam *param, const SoftbusBroadcastData *data)
113 {
114 ManagerMock::broadcastCallback->OnStartBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
115 return SOFTBUS_OK;
116 }
117
MockStopBroadcasting(int32_t bcId)118 static int32_t MockStopBroadcasting(int32_t bcId)
119 {
120 ManagerMock::broadcastCallback->OnStopBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
121 return SOFTBUS_OK;
122 }
123
MockSetBroadcastingData(int32_t bcId,const SoftbusBroadcastData * data)124 static int32_t MockSetBroadcastingData(int32_t bcId, const SoftbusBroadcastData *data)
125 {
126 ManagerMock::broadcastCallback->OnSetBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
127 return SOFTBUS_OK;
128 }
129
MockUpdateBroadcasting(int32_t bcId,const SoftbusBroadcastParam * param,const SoftbusBroadcastData * data)130 static int32_t MockUpdateBroadcasting(int32_t bcId, const SoftbusBroadcastParam *param,
131 const SoftbusBroadcastData *data)
132 {
133 ManagerMock::broadcastCallback->OnUpdateBroadcastingCallback(bcId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
134 return SOFTBUS_OK;
135 }
136
MockStartScan(int32_t scanerId,const SoftBusBcScanParams * param,const SoftBusBcScanFilter * scanFilter,int32_t filterSize)137 static int32_t MockStartScan(int32_t scanerId, const SoftBusBcScanParams *param, const SoftBusBcScanFilter *scanFilter,
138 int32_t filterSize)
139 {
140 return SOFTBUS_OK;
141 }
142
MockStopScan(int32_t scanerId)143 static int32_t MockStopScan(int32_t scanerId)
144 {
145 return SOFTBUS_OK;
146 }
147
MockIsLpDeviceAvailable(void)148 static bool MockIsLpDeviceAvailable(void)
149 {
150 return true;
151 }
152
MockSetAdvFilterParam(LpServerType type,const SoftBusLpBroadcastParam * bcParam,const SoftBusLpScanParam * scanParam)153 static bool MockSetAdvFilterParam(LpServerType type,
154 const SoftBusLpBroadcastParam *bcParam, const SoftBusLpScanParam *scanParam)
155 {
156 return SOFTBUS_OK;
157 }
158
MockGetBroadcastHandle(int32_t bcId,int32_t * bcHandle)159 static int32_t MockGetBroadcastHandle(int32_t bcId, int32_t *bcHandle)
160 {
161 return SOFTBUS_OK;
162 }
163
MockEnableSyncDataToLpDevice(void)164 static int32_t MockEnableSyncDataToLpDevice(void)
165 {
166 return SOFTBUS_OK;
167 }
168
MockDisableSyncDataToLpDevice(void)169 static int32_t MockDisableSyncDataToLpDevice(void)
170 {
171 return SOFTBUS_OK;
172 }
173
MockSetScanReportChannelToLpDevice(int32_t scannerId,bool enable)174 static int32_t MockSetScanReportChannelToLpDevice(int32_t scannerId, bool enable)
175 {
176 return SOFTBUS_OK;
177 }
178
MockSetLpDeviceParam(int32_t duration,int32_t maxExtAdvEvents,int32_t window,int32_t interval,int32_t bcHandle)179 static int32_t MockSetLpDeviceParam(int32_t duration, int32_t maxExtAdvEvents, int32_t window,
180 int32_t interval, int32_t bcHandle)
181 {
182 return SOFTBUS_OK;
183 }
184
ActionOfSoftbusBleAdapterInit()185 static void ActionOfSoftbusBleAdapterInit()
186 {
187 DISC_LOGI(DISC_TEST, "enter");
188 static SoftbusBroadcastMediumInterface interface = {
189 .Init = MockInit,
190 .DeInit = MockDeInit,
191 .RegisterBroadcaster = MockRegisterBroadcaster,
192 .UnRegisterBroadcaster = MockUnRegisterBroadcaster,
193 .RegisterScanListener = MockRegisterScanListener,
194 .UnRegisterScanListener = MockUnRegisterScanListener,
195 .StartBroadcasting = MockStartBroadcasting,
196 .StopBroadcasting = MockStopBroadcasting,
197 .SetBroadcastingData = MockSetBroadcastingData,
198 .UpdateBroadcasting = MockUpdateBroadcasting,
199 .StartScan = MockStartScan,
200 .StopScan = MockStopScan,
201 .IsLpDeviceAvailable = MockIsLpDeviceAvailable,
202 .SetAdvFilterParam = MockSetAdvFilterParam,
203 .GetBroadcastHandle = MockGetBroadcastHandle,
204 .EnableSyncDataToLpDevice = MockEnableSyncDataToLpDevice,
205 .DisableSyncDataToLpDevice = MockDisableSyncDataToLpDevice,
206 .SetScanReportChannelToLpDevice = MockSetScanReportChannelToLpDevice,
207 .SetLpDeviceParam = MockSetLpDeviceParam,
208 };
209 if (RegisterBroadcastMediumFunction(BROADCAST_MEDIUM_TYPE_BLE, &interface) != 0) {
210 DISC_LOGE(DISC_TEST, "Register gatt interface failed.");
211 }
212 }
213
SoftbusBleAdapterDeInit(void)214 void SoftbusBleAdapterDeInit(void)
215 {
216 DISC_LOGI(DISC_TEST, "enter");
217 }
218