1 /*
2 * Copyright (c) 2022 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 <gtest/gtest.h>
17 #include <securec.h>
18
19 #include "lnn_net_ledger_mock.h"
20 #include "softbus_adapter_mem.h"
21 #include "softbus_errcode.h"
22 #include "softbus_log.h"
23
24 using namespace testing;
25 using namespace testing::ext;
26
27 #define LNN_RELATION_JOIN_THREAD 1
28
29 namespace OHOS {
30
31 void *g_netLedgerinterface;
LnnNetLedgertInterfaceMock()32 LnnNetLedgertInterfaceMock::LnnNetLedgertInterfaceMock()
33 {
34 g_netLedgerinterface = reinterpret_cast<void *>(this);
35 }
36
~LnnNetLedgertInterfaceMock()37 LnnNetLedgertInterfaceMock::~LnnNetLedgertInterfaceMock()
38 {
39 g_netLedgerinterface = nullptr;
40 }
41
GetNetLedgerInterface()42 static LnnNetLedgerInterface *GetNetLedgerInterface()
43 {
44 return reinterpret_cast<LnnNetLedgerInterface *>(g_netLedgerinterface);
45 }
46
47 extern "C" {
LnnGetLocalStrInfo(InfoKey key,char * info,uint32_t len)48 int32_t LnnGetLocalStrInfo(InfoKey key, char *info, uint32_t len)
49 {
50 return GetNetLedgerInterface()->LnnGetLocalStrInfo(key, info, len);
51 }
52
LnnGetLocalNodeInfo(void)53 const NodeInfo *LnnGetLocalNodeInfo(void)
54 {
55 return GetNetLedgerInterface()->LnnGetLocalNodeInfo();
56 }
57
LnnGetAuthPort(const NodeInfo * info)58 int32_t LnnGetAuthPort(const NodeInfo *info)
59 {
60 return GetNetLedgerInterface()->LnnGetAuthPort(info);
61 }
62
LnnGetSessionPort(const NodeInfo * info)63 int32_t LnnGetSessionPort(const NodeInfo *info)
64 {
65 return GetNetLedgerInterface()->LnnGetSessionPort(info);
66 }
67
LnnGetProxyPort(const NodeInfo * info)68 int32_t LnnGetProxyPort(const NodeInfo *info)
69 {
70 return GetNetLedgerInterface()->LnnGetProxyPort(info);
71 }
72
LnnGetBtMac(const NodeInfo * info)73 const char *LnnGetBtMac(const NodeInfo *info)
74 {
75 return GetNetLedgerInterface()->LnnGetBtMac(info);
76 }
77
LnnGetDeviceName(const DeviceBasicInfo * info)78 const char *LnnGetDeviceName(const DeviceBasicInfo *info)
79 {
80 return GetNetLedgerInterface()->LnnGetDeviceName(info);
81 }
82
LnnConvertIdToDeviceType(uint16_t typeId)83 char *LnnConvertIdToDeviceType(uint16_t typeId)
84 {
85 return GetNetLedgerInterface()->LnnConvertIdToDeviceType(typeId);
86 }
87
LnnGetP2pRole(const NodeInfo * info)88 int32_t LnnGetP2pRole(const NodeInfo *info)
89 {
90 return GetNetLedgerInterface()->LnnGetP2pRole(info);
91 }
92
LnnGetP2pMac(const NodeInfo * info)93 const char *LnnGetP2pMac(const NodeInfo *info)
94 {
95 return GetNetLedgerInterface()->LnnGetP2pMac(info);
96 }
97
LnnGetSupportedProtocols(const NodeInfo * info)98 uint64_t LnnGetSupportedProtocols(const NodeInfo *info)
99 {
100 return GetNetLedgerInterface()->LnnGetSupportedProtocols(info);
101 }
102
LnnConvertDeviceTypeToId(const char * deviceType,uint16_t * typeId)103 int32_t LnnConvertDeviceTypeToId(const char *deviceType, uint16_t *typeId)
104 {
105 return GetNetLedgerInterface()->LnnConvertDeviceTypeToId(deviceType, typeId);
106 }
107
LnnGetLocalNumInfo(InfoKey key,int32_t * info)108 int32_t LnnGetLocalNumInfo(InfoKey key, int32_t *info)
109 {
110 return GetNetLedgerInterface()->LnnGetLocalNumInfo(key, info);
111 }
112
LnnConvertDlId(const char * srcId,IdCategory srcIdType,IdCategory dstIdType,char * dstIdBuf,uint32_t dstIdBufLen)113 int32_t LnnConvertDlId(const char *srcId, IdCategory srcIdType, IdCategory dstIdType,
114 char *dstIdBuf, uint32_t dstIdBufLen)
115 {
116 return GetNetLedgerInterface()->LnnConvertDlId(srcId, srcIdType,
117 dstIdType, dstIdBuf, dstIdBufLen);
118 }
119
LnnSetNetCapability(uint32_t * capability,NetCapability type)120 int32_t LnnSetNetCapability(uint32_t *capability, NetCapability type)
121 {
122 return GetNetLedgerInterface()->LnnSetNetCapability(capability, type);
123 }
124
LnnClearNetCapability(uint32_t * capability,NetCapability type)125 int32_t LnnClearNetCapability(uint32_t *capability, NetCapability type)
126 {
127 return GetNetLedgerInterface()->LnnClearNetCapability(capability, type);
128 }
129
LnnSetP2pRole(NodeInfo * info,int32_t role)130 int32_t LnnSetP2pRole(NodeInfo *info, int32_t role)
131 {
132 return GetNetLedgerInterface()->LnnSetP2pRole(info, role);
133 }
134
LnnSetP2pMac(NodeInfo * info,const char * p2pMac)135 int32_t LnnSetP2pMac(NodeInfo *info, const char *p2pMac)
136 {
137 return GetNetLedgerInterface()->LnnSetP2pMac(info, p2pMac);
138 }
139
LnnSetP2pGoMac(NodeInfo * info,const char * goMac)140 int32_t LnnSetP2pGoMac(NodeInfo *info, const char *goMac)
141 {
142 return GetNetLedgerInterface()->LnnSetP2pGoMac(info, goMac);
143 }
144
LnnGetAllOnlineAndMetaNodeInfo(NodeBasicInfo ** info,int32_t * infoNum)145 int32_t LnnGetAllOnlineAndMetaNodeInfo(NodeBasicInfo **info, int32_t *infoNum)
146 {
147 return GetNetLedgerInterface()->LnnGetAllOnlineAndMetaNodeInfo(info, infoNum);
148 }
149
LnnGetAllOnlineNodeInfo(NodeBasicInfo ** info,int32_t * infoNum)150 int32_t LnnGetAllOnlineNodeInfo(NodeBasicInfo **info, int32_t *infoNum)
151 {
152 return GetNetLedgerInterface()->LnnGetAllOnlineNodeInfo(info, infoNum);
153 }
154
LnnGetNodeInfoById(const char * id,IdCategory type)155 NodeInfo *LnnGetNodeInfoById(const char *id, IdCategory type)
156 {
157 return GetNetLedgerInterface()->LnnGetNodeInfoById(id, type);
158 }
159
LnnGetLnnRelation(const char * id,IdCategory type,uint8_t * relation,uint32_t len)160 int32_t LnnGetLnnRelation(const char *id, IdCategory type, uint8_t *relation, uint32_t len)
161 {
162 return GetNetLedgerInterface()->LnnGetLnnRelation(id, type, relation, len);
163 }
164
LnnSetDLConnCapability(const char * networkId,uint64_t connCapability)165 int32_t LnnSetDLConnCapability(const char *networkId, uint64_t connCapability)
166 {
167 return GetNetLedgerInterface()->LnnSetDLConnCapability(networkId, connCapability);
168 }
169
LnnHasDiscoveryType(const NodeInfo * info,DiscoveryType type)170 bool LnnHasDiscoveryType(const NodeInfo *info, DiscoveryType type)
171 {
172 return GetNetLedgerInterface()->LnnHasDiscoveryType(info, type);
173 }
174
LnnSetLocalStrInfo(InfoKey key,const char * info)175 int32_t LnnSetLocalStrInfo(InfoKey key, const char *info)
176 {
177 return GetNetLedgerInterface()->LnnSetLocalStrInfo(key, info);
178 }
179
LnnSetLocalNumInfo(InfoKey key,int32_t info)180 int32_t LnnSetLocalNumInfo(InfoKey key, int32_t info)
181 {
182 return GetNetLedgerInterface()->LnnSetLocalNumInfo(key, info);
183 }
184
LnnSetDLP2pInfo(const char * networkId,const P2pInfo * info)185 bool LnnSetDLP2pInfo(const char *networkId, const P2pInfo *info)
186 {
187 return GetNetLedgerInterface()->LnnSetDLP2pInfo(networkId, info);
188 }
189
LnnIsNodeOnline(const NodeInfo * info)190 bool LnnIsNodeOnline(const NodeInfo *info)
191 {
192 return GetNetLedgerInterface()->LnnIsNodeOnline(info);
193 }
194
LnnGetCnnCode(const char * uuid,DiscoveryType type)195 short LnnGetCnnCode(const char *uuid, DiscoveryType type)
196 {
197 return GetNetLedgerInterface()->LnnGetCnnCode(uuid, type);
198 }
199
LnnAddOnlineNode(NodeInfo * info)200 ReportCategory LnnAddOnlineNode(NodeInfo *info)
201 {
202 return GetNetLedgerInterface()->LnnAddOnlineNode(info);
203 }
204
LnnGetBasicInfoByUdid(const char * udid,NodeBasicInfo * basicInfo)205 int32_t LnnGetBasicInfoByUdid(const char *udid, NodeBasicInfo *basicInfo)
206 {
207 return GetNetLedgerInterface()->LnnGetBasicInfoByUdid(udid, basicInfo);
208 }
209
LnnInsertSpecificTrustedDevInfo(const char * udid)210 int32_t LnnInsertSpecificTrustedDevInfo(const char *udid)
211 {
212 return GetNetLedgerInterface()->LnnInsertSpecificTrustedDevInfo(udid);
213 }
214
LnnSetNodeOffline(const char * udid,ConnectionAddrType type,int32_t authId)215 ReportCategory LnnSetNodeOffline(const char *udid, ConnectionAddrType type, int32_t authId)
216 {
217 return GetNetLedgerInterface()->LnnSetNodeOffline(udid, type, authId);
218 }
219
LnnRemoveNode(const char * udid)220 void LnnRemoveNode(const char *udid)
221 {
222 return GetNetLedgerInterface()->LnnRemoveNode(udid);
223 }
224
LnnGetDeviceUdid(const NodeInfo * info)225 const char *LnnGetDeviceUdid(const NodeInfo *info)
226 {
227 return GetNetLedgerInterface()->LnnGetDeviceUdid(info);
228 }
229
ActionOfLnnGetAllOnline(NodeBasicInfo ** info,int32_t * infoNum)230 int32_t LnnNetLedgertInterfaceMock::ActionOfLnnGetAllOnline(NodeBasicInfo **info, int32_t *infoNum)
231 {
232 if (info == NULL || infoNum == NULL) {
233 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_ERROR, "invalid para");
234 return SOFTBUS_ERR;
235 }
236 *infoNum = 1;
237 *info = (NodeBasicInfo *)SoftBusMalloc((*infoNum) * sizeof(NodeBasicInfo));
238 if (*info == NULL) {
239 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_INFO, "malloc info fail");
240 return SOFTBUS_ERR;
241 }
242 if (memcpy_s((*info)->networkId, sizeof((*info)->networkId), "abc", strlen("abc") + 1) != EOK) {
243 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_INFO, "memcpy networkId fail");
244 return SOFTBUS_ERR;
245 }
246 return SOFTBUS_OK;
247 }
248
ActionOfLnnConvertDlId(const char * srcId,IdCategory srcIdType,IdCategory dstIdType,char * dstIdBuf,uint32_t dstIdBufLen)249 int32_t LnnNetLedgertInterfaceMock::ActionOfLnnConvertDlId(const char *srcId, IdCategory srcIdType,
250 IdCategory dstIdType, char *dstIdBuf, uint32_t dstIdBufLen)
251 {
252 if (srcId == NULL || dstIdBuf == NULL) {
253 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_ERROR, "invalid para");
254 return SOFTBUS_ERR;
255 }
256 if (memcpy_s(dstIdBuf, dstIdBufLen, "abc", strlen("abc") + 1) != EOK) {
257 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_INFO, "memcpy dstIdBuf fail");
258 return SOFTBUS_ERR;
259 }
260 return SOFTBUS_OK;
261 }
262
ActionOfLnnConvertDlId1(const char * srcId,IdCategory srcIdType,IdCategory dstIdType,char * dstIdBuf,uint32_t dstIdBufLen)263 int32_t LnnNetLedgertInterfaceMock::ActionOfLnnConvertDlId1(const char *srcId, IdCategory srcIdType,
264 IdCategory dstIdType, char *dstIdBuf, uint32_t dstIdBufLen)
265 {
266 if (srcId == NULL || dstIdBuf == NULL) {
267 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_ERROR, "invalid para");
268 return SOFTBUS_ERR;
269 }
270 if (strcpy_s(dstIdBuf, dstIdBufLen, "abdef") != EOK) {
271 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_INFO, "memcpy dstIdBuf fail");
272 return SOFTBUS_ERR;
273 }
274 return SOFTBUS_OK;
275 }
276
ActionOfLnnGetAllOnlineNodeInfo(NodeBasicInfo ** info,int32_t * infoNum)277 int32_t LnnNetLedgertInterfaceMock::ActionOfLnnGetAllOnlineNodeInfo(NodeBasicInfo **info, int32_t *infoNum)
278 {
279 if (info == NULL || infoNum == NULL) {
280 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_ERROR, "invalid para");
281 return SOFTBUS_ERR;
282 }
283 *infoNum = 1;
284 *info = (NodeBasicInfo *)SoftBusMalloc((*infoNum) * sizeof(NodeBasicInfo));
285 if (*info == NULL) {
286 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_INFO, "malloc info fail");
287 return SOFTBUS_ERR;
288 }
289 if (memcpy_s((*info)->networkId, sizeof((*info)->networkId), "abc", strlen("abc") + 1) != EOK) {
290 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_ERROR, "memcpy networkId fail");
291 return SOFTBUS_ERR;
292 }
293 return SOFTBUS_OK;
294 }
295
ActionOfLnnGetLnnRelation(const char * id,IdCategory type,uint8_t * relation,uint32_t len)296 int32_t LnnNetLedgertInterfaceMock::ActionOfLnnGetLnnRelation(const char *id, IdCategory type,
297 uint8_t *relation, uint32_t len)
298 {
299 if (CONNECTION_ADDR_BR >= len) {
300 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_ERROR, "set relation fail");
301 return SOFTBUS_ERR;
302 }
303 relation[CONNECTION_ADDR_BR] = LNN_RELATION_JOIN_THREAD;
304 return SOFTBUS_OK;
305 }
306
ActionOfLnnGetLocalStrInfo(InfoKey key,char * info,uint32_t len)307 int32_t LnnNetLedgertInterfaceMock::ActionOfLnnGetLocalStrInfo(InfoKey key, char *info, uint32_t len)
308 {
309 if (info == NULL) {
310 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_ERROR, "invalid para");
311 return SOFTBUS_ERR;
312 }
313 if (memcpy_s(info, len, "abc", strlen("abc") + 1) != EOK) {
314 SoftBusLog(SOFTBUS_LOG_LNN, SOFTBUS_LOG_ERROR, "memcpy info fail");
315 return SOFTBUS_ERR;
316 }
317 return SOFTBUS_OK;
318 }
319 }
320 }