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 "UTTest_discovery_manager.h"
17
18 #include <iostream>
19 #include <string>
20 #include <unistd.h>
21
22 #include "device_manager_service_listener.h"
23 #include "dm_anonymous.h"
24 #include "dm_constants.h"
25 #include "dm_log.h"
26 #include "ipc_server_listener.h"
27 #include "softbus_bus_center.h"
28 #include "softbus_error_code.h"
29
30 namespace OHOS {
31 namespace DistributedHardware {
SetUp()32 void DiscoveryManagerTest::SetUp()
33 {
34 }
35
TearDown()36 void DiscoveryManagerTest::TearDown()
37 {
38 }
39
SetUpTestCase()40 void DiscoveryManagerTest::SetUpTestCase()
41 {
42 }
43
TearDownTestCase()44 void DiscoveryManagerTest::TearDownTestCase()
45 {
46 }
47
48 namespace {
49 std::shared_ptr<SoftbusListener> softbusListener = std::make_shared<SoftbusListener>();
50 std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<DeviceManagerServiceListener>();
51 std::shared_ptr<DiscoveryManager> manager = std::make_shared<DiscoveryManager>(softbusListener, listener);
52
checkSoftbusRes(int32_t ret)53 bool checkSoftbusRes(int32_t ret)
54 {
55 return ret == SOFTBUS_INVALID_PARAM || ret == SOFTBUS_NETWORK_NOT_INIT || ret == SOFTBUS_NETWORK_LOOPER_ERR;
56 }
57
58 HWTEST_F(DiscoveryManagerTest, EnableDiscoveryListener_001, testing::ext::TestSize.Level0)
59 {
60 std::string pkgName;
61 std::map<std::string, std::string> discoverParam;
62 std::map<std::string, std::string> filterOptions;
63 int32_t ret = manager->EnableDiscoveryListener(pkgName, discoverParam, filterOptions);
64 EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
65 }
66
67 HWTEST_F(DiscoveryManagerTest, EnableDiscoveryListener_002, testing::ext::TestSize.Level0)
68 {
69 std::string pkgName = "pkgName";
70 std::map<std::string, std::string> discoverParam;
71 discoverParam.insert(std::pair<std::string, std::string>("META_TYPE", "ohos.test"));
72 discoverParam.insert(std::pair<std::string, std::string>("SUBSCRIBE_ID", "ohos.test"));
73 std::map<std::string, std::string> filterOptions;
74 int32_t ret = manager->EnableDiscoveryListener(pkgName, discoverParam, filterOptions);
75 EXPECT_EQ(true, checkSoftbusRes(ret));
76 }
77
78 HWTEST_F(DiscoveryManagerTest, EnableDiscoveryListener_003, testing::ext::TestSize.Level0)
79 {
80 std::string pkgName = "pkgName";
81 std::map<std::string, std::string> discoverParam;
82 std::map<std::string, std::string> filterOptions;
83 int32_t ret = manager->EnableDiscoveryListener(pkgName, discoverParam, filterOptions);
84 EXPECT_EQ(true, checkSoftbusRes(ret));
85 }
86
87 HWTEST_F(DiscoveryManagerTest, DisableDiscoveryListener_001, testing::ext::TestSize.Level0)
88 {
89 std::string pkgName;
90 std::map<std::string, std::string> extraParam;
91 int32_t ret = manager->DisableDiscoveryListener(pkgName, extraParam);
92 EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
93 }
94
95 HWTEST_F(DiscoveryManagerTest, DisableDiscoveryListener_002, testing::ext::TestSize.Level0)
96 {
97 std::string pkgName = "pkgName";
98 std::map<std::string, std::string> extraParam;
99 extraParam.insert(std::pair<std::string, std::string>("META_TYPE", "ohos.test"));
100 extraParam.insert(std::pair<std::string, std::string>("SUBSCRIBE_ID", "ohos.test"));
101 int32_t ret = manager->DisableDiscoveryListener(pkgName, extraParam);
102 EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
103 }
104
105 HWTEST_F(DiscoveryManagerTest, DisableDiscoveryListener_003, testing::ext::TestSize.Level0)
106 {
107 std::string pkgName = "pkgName";
108 std::map<std::string, std::string> extraParam;
109 int32_t ret = manager->DisableDiscoveryListener(pkgName, extraParam);
110 EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
111 }
112
113 HWTEST_F(DiscoveryManagerTest, StartDiscovering_001, testing::ext::TestSize.Level0)
114 {
115 std::string pkgName;
116 std::map<std::string, std::string> discoverParam;
117 std::map<std::string, std::string> filterOptions;
118 int32_t ret = manager->StartDiscovering(pkgName, discoverParam, filterOptions);
119 EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
120 }
121
122 HWTEST_F(DiscoveryManagerTest, StartDiscovering_002, testing::ext::TestSize.Level0)
123 {
124 std::string pkgName = "pkgName";
125 std::map<std::string, std::string> discoverParam;
126 discoverParam.insert(std::pair<std::string, std::string>("SUBSCRIBE_ID", "ohos.test"));
127 discoverParam.insert(std::pair<std::string, std::string>("DISC_MEDIUM", "ohos.test"));
128 discoverParam.insert(std::pair<std::string, std::string>("META_TYPE", "ohos.test"));
129 discoverParam.insert(std::pair<std::string, std::string>("FILTER_OPTIONS", "ohos.test"));
130 std::map<std::string, std::string> filterOptions;
131 int32_t ret = manager->StartDiscovering(pkgName, discoverParam, filterOptions);
132 EXPECT_EQ(true, checkSoftbusRes(ret));
133 }
134
135 HWTEST_F(DiscoveryManagerTest, StartDiscovering_003, testing::ext::TestSize.Level0)
136 {
137 std::string pkgName = "pkgName";
138 std::map<std::string, std::string> discoverParam;
139 std::map<std::string, std::string> filterOptions;
140 int32_t ret = manager->StartDiscovering(pkgName, discoverParam, filterOptions);
141 EXPECT_EQ(ret, ERR_DM_DISCOVERY_REPEATED);
142 }
143
144 HWTEST_F(DiscoveryManagerTest, StartDiscovering_004, testing::ext::TestSize.Level0)
145 {
146 std::string pkgName = "pkgName_test1";
147 std::map<std::string, std::string> discoverParam;
148 std::map<std::string, std::string> filterOptions;
149 discoverParam.insert(std::pair<std::string, std::string>("SUBSCRIBE_ID", "test_value1"));
150 discoverParam.insert(std::pair<std::string, std::string>("DISC_MEDIUM", "test_value2"));
151 filterOptions.insert(std::pair<std::string, std::string>("PARAM_KEY_FILTER_OPTIONS", "test_value3"));
152 int32_t ret = manager->StartDiscovering(pkgName, discoverParam, filterOptions);
153 EXPECT_EQ(true, checkSoftbusRes(ret));
154 }
155
156 HWTEST_F(DiscoveryManagerTest, StartDiscovering4MineLibary_001, testing::ext::TestSize.Level0)
157 {
158 std::string pkgName = "pkgName";
159 DmSubscribeInfo dmSubInfo;
160 std::string searchJson = "searchJson";
161 int32_t ret = manager->StartDiscovering4MineLibary(pkgName, dmSubInfo, searchJson);
162 EXPECT_EQ(ret, ERR_DM_JSON_PARSE_STRING);
163 }
164
165 HWTEST_F(DiscoveryManagerTest, StartDiscoveringNoMetaType_001, testing::ext::TestSize.Level0)
166 {
167 DmSubscribeInfo dmSubInfo;
168 std::string pkgName = "pkgNameTest01";
169 std::map<std::string, std::string> param;
170 param.insert(std::pair<std::string, std::string>("META_TYPE", std::to_string(MetaNodeType::PROXY_SHARE)));
171 int32_t ret = manager->StartDiscoveringNoMetaType(pkgName, dmSubInfo, param);
172 EXPECT_NE(ret, DM_OK);
173 }
174
175 HWTEST_F(DiscoveryManagerTest, StartDiscoveringNoMetaType_002, testing::ext::TestSize.Level0)
176 {
177 DmSubscribeInfo dmSubInfo;
178 std::string pkgName = "pkgNameTest02";
179 std::map<std::string, std::string> param;
180 param.insert(std::pair<std::string, std::string>("META_TYPE", std::to_string(MetaNodeType::PROXY_WEAR)));
181 int32_t ret = manager->StartDiscoveringNoMetaType(pkgName, dmSubInfo, param);
182 EXPECT_NE(ret, DM_OK);
183 }
184
185 HWTEST_F(DiscoveryManagerTest, StartDiscoveringNoMetaType_003, testing::ext::TestSize.Level0)
186 {
187 DmSubscribeInfo dmSubInfo;
188 std::string pkgName = "pkgNameTest03";
189 std::map<std::string, std::string> param;
190 param.insert(std::pair<std::string, std::string>("META_TYPE", std::to_string(MetaNodeType::PROXY_CASTPLUS)));
191 int32_t ret = manager->StartDiscoveringNoMetaType(pkgName, dmSubInfo, param);
192 EXPECT_NE(ret, DM_OK);
193 }
194
195 HWTEST_F(DiscoveryManagerTest, StartDiscoveringNoMetaType_004, testing::ext::TestSize.Level0)
196 {
197 DmSubscribeInfo dmSubInfo;
198 std::string pkgName = "pkgNameTest04";
199 std::map<std::string, std::string> param;
200 int32_t ret = manager->StartDiscoveringNoMetaType(pkgName, dmSubInfo, param);
201 EXPECT_NE(ret, DM_OK);
202 }
203
204 HWTEST_F(DiscoveryManagerTest, StartDiscovering4MetaType_001, testing::ext::TestSize.Level0)
205 {
206 DmSubscribeInfo dmSubInfo;
207 std::string pkgName = "pkgNameTest01";
208 std::map<std::string, std::string> param;
209 param.emplace("META_TYPE", "4");
210 int32_t ret = manager->StartDiscovering4MetaType(pkgName, dmSubInfo, param);
211 EXPECT_NE(ret, DM_OK);
212 }
213
214 HWTEST_F(DiscoveryManagerTest, StartDiscovering4MetaType_002, testing::ext::TestSize.Level0)
215 {
216 DmSubscribeInfo dmSubInfo;
217 std::string pkgName = "pkgNameTest02";
218 std::map<std::string, std::string> param;
219 param.emplace("META_TYPE", "7");
220 int32_t ret = manager->StartDiscovering4MetaType(pkgName, dmSubInfo, param);
221 EXPECT_NE(ret, DM_OK);
222 }
223
224 HWTEST_F(DiscoveryManagerTest, StartDiscovering4MetaType_003, testing::ext::TestSize.Level0)
225 {
226 DmSubscribeInfo dmSubInfo;
227 std::string pkgName = "pkgNameTest03";
228 std::map<std::string, std::string> param;
229 param.emplace("META_TYPE", "5");
230 int32_t ret = manager->StartDiscovering4MetaType(pkgName, dmSubInfo, param);
231 EXPECT_NE(ret, DM_OK);
232 }
233
234 HWTEST_F(DiscoveryManagerTest, StartDiscovering4MetaType_004, testing::ext::TestSize.Level0)
235 {
236 DmSubscribeInfo dmSubInfo;
237 std::string pkgName = "pkgNameTest04";
238 std::map<std::string, std::string> param;
239 param.emplace("META_TYPE", "1234");
240 int32_t ret = manager->StartDiscovering4MetaType(pkgName, dmSubInfo, param);
241 EXPECT_EQ(ret, ERR_DM_UNSUPPORTED_METHOD);
242 }
243
244 HWTEST_F(DiscoveryManagerTest, StopDiscovering_001, testing::ext::TestSize.Level0)
245 {
246 std::string pkgName;
247 uint16_t subscribeId = 0;
248 int32_t ret = manager->StopDiscovering(pkgName, subscribeId);
249 EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
250 }
251
252 HWTEST_F(DiscoveryManagerTest, StopDiscovering_002, testing::ext::TestSize.Level0)
253 {
254 std::string pkgName = "pkgName";
255 uint16_t subscribeId = 0;
256 manager->pkgNameSet_.insert(pkgName);
257 DiscoveryContext context;
258 manager->discoveryContextMap_.emplace(pkgName, context);
259 int32_t ret = manager->StopDiscovering(pkgName, subscribeId);
260 EXPECT_EQ(true, checkSoftbusRes(ret));
261 }
262
263 HWTEST_F(DiscoveryManagerTest, OnDeviceFound_001, testing::ext::TestSize.Level0)
264 {
265 std::string pkgName = "pkgName";
266 DmDeviceInfo info;
267 bool isOnline = false;
268 manager->OnDeviceFound(pkgName, info, isOnline);
269 EXPECT_EQ(manager->discoveryContextMap_.empty(), false);
270 }
271
272 HWTEST_F(DiscoveryManagerTest, OnDeviceFound_002, testing::ext::TestSize.Level0)
273 {
274 std::string pkgName = "pkgName";
275 DmDeviceInfo info;
276 bool isOnline = true;
277 manager->OnDeviceFound(pkgName, info, isOnline);
278 EXPECT_EQ(manager->discoveryContextMap_.empty(), false);
279 }
280
281 HWTEST_F(DiscoveryManagerTest, OnDiscoveringResult_001, testing::ext::TestSize.Level0)
282 {
283 std::string pkgName;
284 int32_t subscribeId = 1;
285 int32_t result = 0;
286 manager->OnDiscoveringResult(pkgName, subscribeId, result);
287 EXPECT_EQ(manager->discoveryContextMap_.empty(), false);
288 }
289
290 HWTEST_F(DiscoveryManagerTest, OnDiscoveringResult_002, testing::ext::TestSize.Level0)
291 {
292 std::string pkgName = "pkgName";
293 int32_t subscribeId = 1;
294 int32_t result = 0;
295 manager->listener_ = nullptr;
296 manager->OnDiscoveringResult(pkgName, subscribeId, result);
297 EXPECT_EQ(manager->discoveryContextMap_.empty(), false);
298 }
299
300 HWTEST_F(DiscoveryManagerTest, OnDiscoveringResult_003, testing::ext::TestSize.Level0)
301 {
302 std::string pkgName = "pkgName";
303 int32_t subscribeId = 1;
304 int32_t result = 0;
305 manager->listener_ = std::make_shared<DeviceManagerServiceListener>();
306 manager->OnDiscoveringResult(pkgName, subscribeId, result);
307 EXPECT_NE(manager->discoveryContextMap_.empty(), true);
308 }
309
310 HWTEST_F(DiscoveryManagerTest, OnDiscoveringResult_004, testing::ext::TestSize.Level0)
311 {
312 std::string pkgName = "pkgName";
313 int32_t subscribeId = 1;
314 int32_t result = 1;
315 manager->pkgNameSet_.insert(pkgName);
316 DiscoveryContext context;
317 manager->discoveryContextMap_.emplace(pkgName, context);
318 manager->listener_ = std::make_shared<DeviceManagerServiceListener>();
319 manager->OnDiscoveringResult(pkgName, subscribeId, result);
320 EXPECT_EQ(manager->discoveryContextMap_.empty(), false);
321 }
322
323 HWTEST_F(DiscoveryManagerTest, StartDiscoveryTimer_001, testing::ext::TestSize.Level0)
324 {
325 manager->timer_ = nullptr;
326 std::string pkgName = "timeTest";
327 manager->StartDiscoveryTimer(pkgName);
328 EXPECT_EQ(manager->discoveryContextMap_.empty(), false);
329 }
330
331 HWTEST_F(DiscoveryManagerTest, HandleDiscoveryQueue_001, testing::ext::TestSize.Level0)
332 {
333 std::string pkgName = "pkgName";
334 uint16_t subscribeId = 0;
335 std::map<std::string, std::string> filterOps;
336 filterOps.insert(std::pair<std::string, std::string>("FILTER_OPTIONS", pkgName));
337 int32_t ret = manager->HandleDiscoveryQueue(pkgName, subscribeId, filterOps);
338 EXPECT_NE(ret, DM_OK);
339 }
340
341 HWTEST_F(DiscoveryManagerTest, HandleDiscoveryTimeout_001, testing::ext::TestSize.Level0)
342 {
343 std::string name = "nameTest01";
344 std::set<std::string> emptySet;
345 manager->pkgNameSet_ = emptySet;
346 manager->HandleDiscoveryTimeout(name);
347 EXPECT_EQ(manager->pkgNameSet_.empty(), true);
348 }
349
350 HWTEST_F(DiscoveryManagerTest, HandleDiscoveryTimeout_002, testing::ext::TestSize.Level0)
351 {
352 std::string name = "nameTest02";
353 manager->pkgNameSet_.insert(name);
354 manager->discoveryContextMap_.clear();
355 manager->HandleDiscoveryTimeout(name);
356 EXPECT_EQ(manager->pkgNameSet_.empty(), false);
357 }
358
359 HWTEST_F(DiscoveryManagerTest, HandleDiscoveryTimeout_003, testing::ext::TestSize.Level0)
360 {
361 manager->pkgNameSet_.clear();
362 std::string name = "nameTest03";
363 manager->pkgNameSet_.insert(name);
364 DiscoveryContext context;
365 manager->discoveryContextMap_.emplace(name, context);
366 manager->HandleDiscoveryTimeout(name);
367 EXPECT_EQ(manager->pkgNameSet_.empty(), false);
368 }
369
370 HWTEST_F(DiscoveryManagerTest, GetDeviceAclParam_001, testing::ext::TestSize.Level0)
371 {
372 std::string pkgName;
373 std::string deviceId;
374 bool isonline = true;
375 int32_t authForm = 0;
376 int32_t ret = manager->GetDeviceAclParam(pkgName, 100, deviceId, isonline, authForm);
377 EXPECT_EQ(ret, DM_OK);
378 }
379
380 HWTEST_F(DiscoveryManagerTest, GetCommonDependencyObj_001, testing::ext::TestSize.Level0)
381 {
382 auto ret = manager->GetCommonDependencyObj();
383 EXPECT_NE(ret, nullptr);
384 }
385
386 HWTEST_F(DiscoveryManagerTest, IsCommonDependencyReady_001, testing::ext::TestSize.Level0)
387 {
388 manager->isSoLoaded_ = false;
389 bool ret = manager->IsCommonDependencyReady();
390 EXPECT_EQ(ret, true);
391 }
392
393 HWTEST_F(DiscoveryManagerTest, CloseCommonDependencyObj_001, testing::ext::TestSize.Level0)
394 {
395 manager->isSoLoaded_ = false;
396 manager->dpConnector_ = nullptr;
397 manager->dpConnectorHandle_ = nullptr;
398 bool ret = manager->CloseCommonDependencyObj();
399 EXPECT_EQ(ret, true);
400 }
401
402 HWTEST_F(DiscoveryManagerTest, CloseCommonDependencyObj_002, testing::ext::TestSize.Level0)
403 {
404 bool ret = manager->CloseCommonDependencyObj();
405 EXPECT_EQ(ret, true);
406 }
407
408 /* *
409 * @tc.name: StopDiscoveringByInnerSubId_001
410 * @tc.desc: Test StopDiscoveringByInnerSubId
411 * @tc.type: FUNC
412 * @tc.require:
413 */
414 HWTEST_F(DiscoveryManagerTest, StopDiscoveringByInnerSubId_001, testing::ext::TestSize.Level0)
415 {
416 std::string pkgName;
417 uint16_t subscribeId = 0;
418 int32_t ret = manager->StopDiscoveringByInnerSubId(pkgName, subscribeId);
419 EXPECT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
420 }
421
422 /* *
423 * @tc.name: StopDiscoveringByInnerSubId_002
424 * @tc.desc: Test StopDiscoveringByInnerSubId
425 * @tc.type: FUNC
426 * @tc.require:
427 */
428 HWTEST_F(DiscoveryManagerTest, StopDiscoveringByInnerSubId_002, testing::ext::TestSize.Level0)
429 {
430 std::string pkgName = "pkgName";
431 uint16_t subscribeId = 0;
432 manager->pkgNameSet_.insert(pkgName);
433 DiscoveryContext context;
434 manager->discoveryContextMap_.emplace(pkgName, context);
435 int32_t ret = manager->StopDiscoveringByInnerSubId(pkgName, subscribeId);
436
437 EXPECT_EQ(checkSoftbusRes(ret), false);
438 }
439 } // namespace
440 } // namespace DistributedHardware
441 } // namespace OHOS
442