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 ManagerMock::scanCallback->OnStartScanCallback(scanerId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
141 return SOFTBUS_OK;
142 }
143
MockStopScan(int32_t scanerId)144 static int32_t MockStopScan(int32_t scanerId)
145 {
146 ManagerMock::scanCallback->OnStopScanCallback(scanerId, (int32_t)SOFTBUS_BC_STATUS_SUCCESS);
147 return SOFTBUS_OK;
148 }
149
MockIsLpDeviceAvailable(void)150 static bool MockIsLpDeviceAvailable(void)
151 {
152 return true;
153 }
154
MockSetAdvFilterParam(const SoftBusLpBroadcastParam * bcParam,const SoftBusLpScanParam * scanParam)155 static bool MockSetAdvFilterParam(const SoftBusLpBroadcastParam *bcParam, const SoftBusLpScanParam *scanParam)
156 {
157 return SOFTBUS_OK;
158 }
159
MockGetBroadcastHandle(int32_t bcId,int32_t * bcHandle)160 static int32_t MockGetBroadcastHandle(int32_t bcId, int32_t *bcHandle)
161 {
162 return SOFTBUS_OK;
163 }
164
MockEnableSyncDataToLpDevice(void)165 static int32_t MockEnableSyncDataToLpDevice(void)
166 {
167 return SOFTBUS_OK;
168 }
169
MockDisableSyncDataToLpDevice(void)170 static int32_t MockDisableSyncDataToLpDevice(void)
171 {
172 return SOFTBUS_OK;
173 }
174
MockSetScanReportChannelToLpDevice(int32_t scannerId,bool enable)175 static int32_t MockSetScanReportChannelToLpDevice(int32_t scannerId, bool enable)
176 {
177 return SOFTBUS_OK;
178 }
179
MockSetLpDeviceParam(int32_t duration,int32_t maxExtAdvEvents,int32_t window,int32_t interval,int32_t bcHandle)180 static int32_t MockSetLpDeviceParam(int32_t duration, int32_t maxExtAdvEvents, int32_t window,
181 int32_t interval, int32_t bcHandle)
182 {
183 return SOFTBUS_OK;
184 }
185
ActionOfSoftbusBleAdapterInit()186 static void ActionOfSoftbusBleAdapterInit()
187 {
188 DISC_LOGI(DISC_TEST, "enter");
189 static SoftbusBroadcastMediumInterface interface = {
190 .Init = MockInit,
191 .DeInit = MockDeInit,
192 .RegisterBroadcaster = MockRegisterBroadcaster,
193 .UnRegisterBroadcaster = MockUnRegisterBroadcaster,
194 .RegisterScanListener = MockRegisterScanListener,
195 .UnRegisterScanListener = MockUnRegisterScanListener,
196 .StartBroadcasting = MockStartBroadcasting,
197 .StopBroadcasting = MockStopBroadcasting,
198 .SetBroadcastingData = MockSetBroadcastingData,
199 .UpdateBroadcasting = MockUpdateBroadcasting,
200 .StartScan = MockStartScan,
201 .StopScan = MockStopScan,
202 .IsLpDeviceAvailable = MockIsLpDeviceAvailable,
203 .SetAdvFilterParam = MockSetAdvFilterParam,
204 .GetBroadcastHandle = MockGetBroadcastHandle,
205 .EnableSyncDataToLpDevice = MockEnableSyncDataToLpDevice,
206 .DisableSyncDataToLpDevice = MockDisableSyncDataToLpDevice,
207 .SetScanReportChannelToLpDevice = MockSetScanReportChannelToLpDevice,
208 .SetLpDeviceParam = MockSetLpDeviceParam,
209 };
210 if (RegisterBroadcastMediumFunction(BROADCAST_MEDIUM_TYPE_BLE, &interface) != 0) {
211 DISC_LOGE(DISC_TEST, "Register gatt interface failed.");
212 }
213 }
214