1 /*
2  * Copyright (c) 2023 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 "connection_ble_client_mock.h"
17 #include "softbus_adapter_mem.h"
18 
19 using namespace testing;
20 using namespace testing::ext;
21 
22 namespace OHOS {
23 void *g_connectionBleClientInterface;
ConnectionBleClientInterfaceMock()24 ConnectionBleClientInterfaceMock::ConnectionBleClientInterfaceMock()
25 {
26     g_connectionBleClientInterface = reinterpret_cast<void *>(this);
27 }
28 
~ConnectionBleClientInterfaceMock()29 ConnectionBleClientInterfaceMock::~ConnectionBleClientInterfaceMock()
30 {
31     g_connectionBleClientInterface = nullptr;
32 }
33 
ConnGattTransRecvReturnConnModule(uint32_t connectionId,uint8_t * data,uint32_t dataLen,ConnBleReadBuffer * buffer,uint32_t * outLen)34 uint8_t *ConnectionBleClientInterfaceMock::ConnGattTransRecvReturnConnModule(uint32_t connectionId,
35     uint8_t *data, uint32_t dataLen, ConnBleReadBuffer *buffer, uint32_t *outLen)
36 {
37     ConnPktHead *head = reinterpret_cast<ConnPktHead *>(SoftBusCalloc(sizeof(*head)));
38     head->flag = 0;
39     head->module = MODULE_CONNECTION;
40     int64_t seq = 10;
41     head->seq = seq;
42     *outLen = sizeof((*head));
43     return  reinterpret_cast<uint8_t *>(head);
44 }
45 
ConnGattTransRecvReturnConnModule1(uint32_t connectionId,uint8_t * data,uint32_t dataLen,ConnBleReadBuffer * buffer,uint32_t * outLen)46 uint8_t *ConnectionBleClientInterfaceMock::ConnGattTransRecvReturnConnModule1(uint32_t connectionId,
47     uint8_t *data, uint32_t dataLen, ConnBleReadBuffer *buffer, uint32_t *outLen)
48 {
49     ConnPktHead *head = reinterpret_cast<ConnPktHead *>(SoftBusCalloc(sizeof(*head)));
50     head->magic = 1;
51     head->flag = 1;
52     head->module = MODULE_CONNECTION;
53     int64_t seq = 10;
54     head->seq = seq;
55     *outLen = sizeof((*head));
56     return  reinterpret_cast<uint8_t *>(head);
57 }
58 
ConnGattTransRecvReturnOldNearby(uint32_t connectionId,uint8_t * data,uint32_t dataLen,ConnBleReadBuffer * buffer,uint32_t * outLen)59 uint8_t *ConnectionBleClientInterfaceMock::ConnGattTransRecvReturnOldNearby(uint32_t connectionId,
60     uint8_t *data, uint32_t dataLen, ConnBleReadBuffer *buffer, uint32_t *outLen)
61 {
62     ConnPktHead *head = reinterpret_cast<ConnPktHead *>(SoftBusCalloc(sizeof(*head)));
63     head->flag = 0;
64     head->module = MODULE_OLD_NEARBY;
65     int64_t seq = 10;
66     head->seq = seq;
67     *outLen = sizeof((*head));
68     return  reinterpret_cast<uint8_t *>(head);
69 }
70 
ConnGattTransRecvReturnDefult(uint32_t connectionId,uint8_t * data,uint32_t dataLen,ConnBleReadBuffer * buffer,uint32_t * outLen)71 uint8_t *ConnectionBleClientInterfaceMock::ConnGattTransRecvReturnDefult(uint32_t connectionId,
72     uint8_t *data, uint32_t dataLen, ConnBleReadBuffer *buffer, uint32_t *outLen)
73 {
74     ConnPktHead *head = reinterpret_cast<ConnPktHead *>(SoftBusCalloc(sizeof(*head)));
75     head->flag = 0;
76     head->module = MODULE_AUTH_CHANNEL;
77     int64_t seq = 10;
78     head->seq = seq;
79     *outLen = sizeof((*head));
80     return  reinterpret_cast<uint8_t *>(head);
81 }
82 
ActionOfConnGattTransRecv(uint32_t connectionId,uint8_t * data,uint32_t dataLen,ConnBleReadBuffer * buffer,uint32_t * outLen)83 uint8_t *ConnectionBleClientInterfaceMock::ActionOfConnGattTransRecv(uint32_t connectionId,
84     uint8_t *data, uint32_t dataLen, ConnBleReadBuffer *buffer, uint32_t *outLen)
85 {
86     ConnPktHead *head = reinterpret_cast<ConnPktHead *>(SoftBusCalloc(sizeof(*head)));
87     head->flag = 0;
88     head->module = MODULE_AUTH_CHANNEL;
89     int64_t seq = 10;
90     head->seq = seq;
91     uint32_t len = 4;
92     *outLen = len;
93     return  reinterpret_cast<uint8_t *>(head);
94 }
95 
GetConnectionBleClientInterface()96 static ConnectionBleClientInterface *GetConnectionBleClientInterface()
97 {
98     return reinterpret_cast<ConnectionBleClientInterface *>(g_connectionBleClientInterface);
99 }
100 
101 extern "C" {
SoftbusGattcSetFastestConn(int32_t clientId)102 int32_t SoftbusGattcSetFastestConn(int32_t clientId)
103 {
104     return GetConnectionBleClientInterface()->SoftbusGattcSetFastestConn(clientId);
105 }
106 
SoftbusGattcRefreshServices(int32_t clientId)107 int32_t SoftbusGattcRefreshServices(int32_t clientId)
108 {
109     return GetConnectionBleClientInterface()->SoftbusGattcRefreshServices(clientId);
110 }
111 
SoftbusGattcConnect(int32_t clientId,SoftBusBtAddr * addr)112 int32_t SoftbusGattcConnect(int32_t clientId, SoftBusBtAddr *addr)
113 {
114     return GetConnectionBleClientInterface()->SoftbusGattcConnect(clientId, addr);
115 }
116 
ConnGattTransRecv(uint32_t connectionId,uint8_t * data,uint32_t dataLen,ConnBleReadBuffer * buffer,uint32_t * outLen)117 uint8_t *ConnGattTransRecv(uint32_t connectionId, uint8_t *data,
118     uint32_t dataLen, ConnBleReadBuffer *buffer, uint32_t *outLen)
119 {
120     return GetConnectionBleClientInterface()->ConnGattTransRecv(connectionId, data, dataLen, buffer, outLen);
121 }
122 
SoftbusGattcSearchServices(int32_t clientId)123 int32_t SoftbusGattcSearchServices(int32_t clientId)
124 {
125     return GetConnectionBleClientInterface()->SoftbusGattcSearchServices(clientId);
126 }
127 
SoftbusGattcRegisterNotification(int32_t clientId,SoftBusBtUuid * serverUuid,SoftBusBtUuid * charaUuid,SoftBusBtUuid * descriptorUuid)128 int32_t SoftbusGattcRegisterNotification(int32_t clientId, SoftBusBtUuid *serverUuid,
129     SoftBusBtUuid *charaUuid, SoftBusBtUuid *descriptorUuid)
130 {
131     return GetConnectionBleClientInterface()->SoftbusGattcRegisterNotification(clientId,
132         serverUuid, charaUuid, descriptorUuid);
133 }
134 
SoftbusGattcConfigureMtuSize(int32_t clientId,int mtuSize)135 int32_t SoftbusGattcConfigureMtuSize(int32_t clientId, int mtuSize)
136 {
137     return GetConnectionBleClientInterface()->SoftbusGattcConfigureMtuSize(clientId, mtuSize);
138 }
139 
SoftbusGattcGetService(int32_t clientId,SoftBusBtUuid * serverUuid)140 int32_t SoftbusGattcGetService(int32_t clientId, SoftBusBtUuid *serverUuid)
141 {
142     return GetConnectionBleClientInterface()->SoftbusGattcGetService(clientId, serverUuid);
143 }
144 
SoftbusBleGattcDisconnect(int32_t clientId,bool refreshGatt)145 int32_t SoftbusBleGattcDisconnect(int32_t clientId, bool refreshGatt)
146 {
147     return GetConnectionBleClientInterface()->SoftbusBleGattcDisconnect(clientId, refreshGatt);
148 }
149 
SoftbusGattcWriteCharacteristic(int32_t clientId,SoftBusGattcData * clientData)150 int32_t SoftbusGattcWriteCharacteristic(int32_t clientId, SoftBusGattcData *clientData)
151 {
152     return GetConnectionBleClientInterface()->SoftbusGattcWriteCharacteristic(clientId, clientData);
153 }
154 
SoftbusGattcSetPriority(int32_t clientId,SoftBusBtAddr * addr,SoftbusBleGattPriority priority)155 int32_t SoftbusGattcSetPriority(int32_t clientId, SoftBusBtAddr *addr, SoftbusBleGattPriority priority)
156 {
157     return GetConnectionBleClientInterface()->SoftbusGattcSetPriority(clientId, addr, priority);
158 }
159 
LnnGetLocalStrInfo(InfoKey key,char * info,uint32_t len)160 int32_t LnnGetLocalStrInfo(InfoKey key, char *info, uint32_t len)
161 {
162     return GetConnectionBleClientInterface()->LnnGetLocalStrInfo(key, info, len);
163 }
164 
LnnGetLocalNumInfo(InfoKey key,int32_t * info)165 int32_t LnnGetLocalNumInfo(InfoKey key, int32_t *info)
166 {
167     return GetConnectionBleClientInterface()->LnnGetLocalNumInfo(key, info);
168 }
169 
ConnBlePostBytesInner(uint32_t connectionId,uint8_t * data,uint32_t len,int32_t pid,int32_t flag,int32_t module,int64_t seq,PostBytesFinishAction postBytesFinishAction)170 int32_t ConnBlePostBytesInner(uint32_t connectionId, uint8_t *data, uint32_t len,
171     int32_t pid, int32_t flag, int32_t module, int64_t seq, PostBytesFinishAction postBytesFinishAction)
172 {
173     return GetConnectionBleClientInterface()->ConnBlePostBytesInner(connectionId,
174         data, len, pid, flag, module, seq, postBytesFinishAction);
175 }
176 }
177 }
178