• 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)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