• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2025 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 #include "device/device_manager_agent.h"
16 
17 #include <atomic>
18 #include <exception>
19 #include <memory>
20 #include <unistd.h>
21 
22 #include "gtest/gtest.h"
23 
24 #include "device_manager_impl_mock.h"
25 #include "mountpoint/mount_point.h"
26 #include "network/softbus/softbus_agent.h"
27 
28 namespace OHOS {
29 bool g_parameterVaule = true;
30 namespace system {
GetBoolParameter(const std::string & key,bool def)31 bool GetBoolParameter(const std::string& key, bool def)
32 {
33     return g_parameterVaule;
34 }
35 }
36 }
37 
38 namespace OHOS {
39 namespace Storage {
40 namespace DistributedFile {
41 namespace Test {
42 using namespace testing;
43 using namespace testing::ext;
44 using namespace std;
45 
46 DistributedHardware::DmDeviceInfo deviceInfo = {
47     .deviceId = "testdevid",
48     .deviceName = "testdevname",
49     .deviceTypeId = 1,
50     .networkId = "testNetWork",
51     .extraData = R"({"OS_TYPE":10})",
52 };
53 
54 const std::string NETWORKID_ONE = "45656596896323231";
55 const std::string NETWORKID_TWO = "45656596896323232";
56 const std::string NETWORKID_THREE = "45656596896323233";
57 constexpr int32_t NETWORKTYPE_WITH_WIFI = 2;
58 constexpr int32_t NETWORKTYPE_NONE_WIFI = 4;
59 
60 class DeviceManagerAgentTest : public testing::Test {
61 public:
62     static void SetUpTestCase(void);
63     static void TearDownTestCase(void);
64     void SetUp();
65     void TearDown();
66     static inline shared_ptr<DeviceManagerImplMock> deviceManagerImplMock_ = nullptr;
67 };
68 
SetUpTestCase(void)69 void DeviceManagerAgentTest::SetUpTestCase(void)
70 {
71     // input testsuit setup step,setup invoked before all testcases
72     deviceManagerImplMock_ = make_shared<DeviceManagerImplMock>();
73     DeviceManagerImplMock::dfsDeviceManagerImpl = deviceManagerImplMock_;
74     EXPECT_CALL(*deviceManagerImplMock_, InitDeviceManager(_, _)).WillRepeatedly(Return(0));
75     EXPECT_CALL(*deviceManagerImplMock_, RegisterDevStateCallback(_, _, _)).WillRepeatedly(Return(0));
76     EXPECT_CALL(*deviceManagerImplMock_, UnRegisterDevStateCallback(_)).WillRepeatedly(Return(0));
77     EXPECT_CALL(*deviceManagerImplMock_, UnInitDeviceManager(_)).WillRepeatedly(Return(0));
78     EXPECT_CALL(*deviceManagerImplMock_, UnInitDeviceManager(_)).WillRepeatedly(Return(0));
79     EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _)).WillRepeatedly(Return(0));
80 }
81 
TearDownTestCase(void)82 void DeviceManagerAgentTest::TearDownTestCase(void)
83 {
84     // input testsuit teardown step,teardown invoked after all testcases
85     DeviceManagerImplMock::dfsDeviceManagerImpl = nullptr;
86     deviceManagerImplMock_ = nullptr;
87 }
88 
SetUp(void)89 void DeviceManagerAgentTest::SetUp(void)
90 {
91     // input testcase setup step,setup invoked before each testcases
92 }
93 
TearDown(void)94 void DeviceManagerAgentTest::TearDown(void)
95 {
96     // input testcase teardown step,teardown invoked after each testcases
97 }
98 
99 /**
100  * @tc.name: DeviceManagerAgentTest_OnDeviceOnline_0100
101  * @tc.desc: Verify the OnDeviceOnline function.
102  * @tc.type: FUNC
103  * @tc.require: SR000H0387
104  */
105 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceOnline_0100, TestSize.Level1)
106 {
107     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOnline_0100 start";
108     bool res = true;
109 
110     try {
111         DeviceManagerAgent::GetInstance()->OnDeviceOnline(deviceInfo);
112     } catch (const exception &e) {
113         LOGE("Error:%{public}s", e.what());
114         res = false;
115     }
116 
117     EXPECT_TRUE(res == true);
118     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOnline_0100 end";
119 }
120 
121 /**
122  * @tc.name: DeviceManagerAgentTest_OnDeviceOnline_0400
123  * @tc.desc: Verify the OnDeviceOnline function.
124  * @tc.type: FUNC
125  * @tc.require: SR000H0387
126  */
127 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceOnline_0400, TestSize.Level1)
128 {
129     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOnline_0400 start";
130     bool res = true;
131 
132     try {
133         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
134         auto agent1 = make_shared<SoftbusAgent>(smp);
135         (void)memcpy_s(deviceInfo.networkId, DM_MAX_DEVICE_NAME_LEN - 1,
136                        NETWORKID_TWO.c_str(), NETWORKID_TWO.size());
137         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.insert({ NETWORKID_TWO, agent1 });
138         DeviceManagerAgent::GetInstance()->cidNetworkType_.insert({ NETWORKID_TWO, NETWORKTYPE_NONE_WIFI });
139         DeviceManagerAgent::GetInstance()->OnDeviceOnline(deviceInfo);
140         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.erase(NETWORKID_TWO);
141         DeviceManagerAgent::GetInstance()->cidNetworkType_.erase(NETWORKID_TWO);
142     } catch (const exception &e) {
143         GTEST_LOG_(INFO) << e.what();
144         res = false;
145     }
146 
147     EXPECT_TRUE(res);
148     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOnline_0400 end";
149 }
150 
151 /**
152  * @tc.name: DeviceManagerAgentTest_OnDeviceOffline_0100
153  * @tc.desc: Verify the OnDeviceOffline function.
154  * @tc.type: FUNC
155  * @tc.require: SR000H0387
156  */
157 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceOffline_0100, TestSize.Level1)
158 {
159     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOffline_0100 start";
160     bool res = true;
161 
162     try {
163         DeviceManagerAgent::GetInstance()->OnDeviceOffline(deviceInfo);
164     } catch (const exception &e) {
165         LOGE("Error:%{public}s", e.what());
166         res = false;
167     }
168 
169     EXPECT_TRUE(res == true);
170     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOffline_0100 end";
171 }
172 
173 /**
174  * @tc.name: DeviceManagerAgentTest_OnDeviceOffline_0200
175  * @tc.desc: Verify the OnDeviceOffline function.
176  * @tc.type: FUNC
177  * @tc.require: SR000H0387
178  */
179 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceOffline_0200, TestSize.Level1)
180 {
181     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOffline_0200 start";
182     bool res = true;
183 
184     try {
185         DeviceManagerAgent::GetInstance()->OnDeviceOnline(deviceInfo);
186         DeviceManagerAgent::GetInstance()->OnDeviceOffline(deviceInfo);
187     } catch (const exception &e) {
188         LOGE("Error:%{public}s", e.what());
189         res = false;
190     }
191 
192     EXPECT_TRUE(res == true);
193     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOffline_0200 end";
194 }
195 
196 /**
197  * @tc.name: DeviceManagerAgentTest_OnDeviceOffline_0300
198  * @tc.desc: Verify the OnDeviceOffline function.
199  * @tc.type: FUNC
200  * @tc.require: SR000H0387
201  */
202 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceOffline_0300, TestSize.Level1)
203 {
204     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOffline_0300 start";
205     bool res = true;
206 
207     try {
208         EXPECT_CALL(*deviceManagerImplMock_, GetLocalDeviceInfo(_, _)).WillOnce(Return(0))
209             .WillOnce(Return(0)).WillOnce(Return(0));
210         DeviceManagerAgent::GetInstance()->InitLocalNodeInfo();
211         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
212         auto agent1 = make_shared<SoftbusAgent>(smp);
213         (void)memcpy_s(deviceInfo.networkId, DM_MAX_DEVICE_NAME_LEN - 1,
214                        NETWORKID_TWO.c_str(), NETWORKID_TWO.size());
215         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.insert({ NETWORKID_TWO, agent1 });
216         DeviceManagerAgent::GetInstance()->cidNetworkType_.insert({ NETWORKID_TWO, NETWORKTYPE_NONE_WIFI });
217         DeviceManagerAgent::GetInstance()->OnDeviceOnline(deviceInfo);
218         DeviceManagerAgent::GetInstance()->OnDeviceOffline(deviceInfo);
219         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.erase(NETWORKID_TWO);
220         DeviceManagerAgent::GetInstance()->cidNetworkType_.erase(NETWORKID_TWO);
221     } catch (const exception &e) {
222         GTEST_LOG_(INFO) << e.what();
223         res = false;
224     }
225 
226     EXPECT_TRUE(res == true);
227     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceOffline_0300 end";
228 }
229 
230 /**
231  * @tc.name: DeviceManagerAgentTest_OnDeviceChanged_0100
232  * @tc.desc: Verify the OnDeviceChanged function.
233  * @tc.type: FUNC
234  * @tc.require: SR000H0387
235  */
236 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceChanged_0100, TestSize.Level1)
237 {
238     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceChanged_0100 start";
239     bool res = true;
240 
241     try {
242         DeviceManagerAgent::GetInstance()->OnDeviceChanged(deviceInfo);
243     } catch (const exception &e) {
244         LOGE("Error:%{public}s", e.what());
245         res = false;
246     }
247 
248     EXPECT_TRUE(res == true);
249     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceChanged_0100 end";
250 }
251 
252 /**
253  * @tc.name: DeviceManagerAgentTest_OnDeviceChanged_0200
254  * @tc.desc: Verify the OnDeviceChanged function.
255  * @tc.type: FUNC
256  * @tc.require: SR000H0387
257  */
258 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceChanged_0200, TestSize.Level1)
259 {
260     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceChanged_0200 start";
261     bool res = true;
262 
263     try {
264         deviceInfo.networkType = -1;
265         DeviceManagerAgent::GetInstance()->OnDeviceChanged(deviceInfo);
266         deviceInfo.networkType = 1;
267         DeviceManagerAgent::GetInstance()->OnDeviceChanged(deviceInfo);
268     } catch (const exception &e) {
269         GTEST_LOG_(INFO) << e.what();
270         res = false;
271     }
272 
273     EXPECT_TRUE(res);
274     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceChanged_0200 end";
275 }
276 
277 /**
278  * @tc.name: DeviceManagerAgentTest_OnDeviceChanged_0300
279  * @tc.desc: Verify the OnDeviceChanged function.
280  * @tc.type: FUNC
281  * @tc.require: SR000H0387
282  */
283 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceChanged_0300, TestSize.Level1)
284 {
285     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceChanged_0300 start";
286     bool res = true;
287 
288     try {
289         deviceInfo.networkType = NETWORKTYPE_NONE_WIFI;
290         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
291         auto agent1 = make_shared<SoftbusAgent>(smp);
292         (void)memcpy_s(deviceInfo.networkId, DM_MAX_DEVICE_NAME_LEN - 1,
293                        NETWORKID_THREE.c_str(), NETWORKID_THREE.size());
294         std::vector<DmDeviceInfo> deviceList;
295         deviceList.push_back(deviceInfo);
296         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
297             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
298         auto devicePtr = DeviceManagerAgent::GetInstance();
299         devicePtr->cidNetTypeRecord_.insert({ NETWORKID_THREE, agent1 });
300         devicePtr->OnDeviceChanged(deviceInfo);
301 
302         devicePtr->cidNetworkType_.insert({ NETWORKID_THREE, NETWORKTYPE_NONE_WIFI });
303         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
304             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
305         devicePtr->OnDeviceChanged(deviceInfo);
306 
307         deviceInfo.networkType = NETWORKTYPE_WITH_WIFI;
308         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
309             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
310         devicePtr->OnDeviceChanged(deviceInfo);
311         devicePtr->cidNetTypeRecord_.erase(NETWORKID_THREE);
312         devicePtr->cidNetworkType_.erase(NETWORKID_THREE);
313     } catch (const exception &e) {
314         GTEST_LOG_(INFO) << e.what();
315         res = false;
316     }
317 
318     EXPECT_TRUE(res);
319     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceChanged_0300 end";
320 }
321 
322 /**
323  * @tc.name: DeviceManagerAgentTest_OnDeviceChanged_0400
324  * @tc.desc: Verify the OnDeviceChanged function.
325  * @tc.type: FUNC
326  * @tc.require: SR000H0387
327  */
328 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceChanged_0400, TestSize.Level1)
329 {
330     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceChanged_0400 start";
331     bool res = true;
332 
333     try {
334         deviceInfo.networkType = NETWORKTYPE_WITH_WIFI;
335         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
336         auto agent1 = make_shared<SoftbusAgent>(smp);
337         (void)memcpy_s(deviceInfo.networkId, DM_MAX_DEVICE_NAME_LEN - 1,
338                        NETWORKID_TWO.c_str(), NETWORKID_TWO.size());
339         std::vector<DmDeviceInfo> deviceList;
340         deviceList.push_back(deviceInfo);
341         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
342             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
343         auto devicePtr = DeviceManagerAgent::GetInstance();
344         devicePtr->cidNetTypeRecord_.insert({ NETWORKID_TWO, agent1 });
345         devicePtr->cidNetworkType_.insert({ NETWORKID_TWO, NETWORKTYPE_WITH_WIFI });
346         devicePtr->OnDeviceChanged(deviceInfo);
347 
348         deviceInfo.networkType = NETWORKTYPE_NONE_WIFI;
349         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
350             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0))).WillOnce(Return(0));
351         devicePtr->OnDeviceChanged(deviceInfo);
352         devicePtr->cidNetTypeRecord_.erase(NETWORKID_TWO);
353         devicePtr->cidNetworkType_.erase(NETWORKID_TWO);
354     } catch (const exception &e) {
355         GTEST_LOG_(INFO) << e.what();
356         res = false;
357     }
358 
359     EXPECT_TRUE(res);
360     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceChanged_0400 end";
361 }
362 /**
363  * @tc.name: DeviceManagerAgentTest_OnDeviceReady_0100
364  * @tc.desc: Verify the OnDeviceReady function.
365  * @tc.type: FUNC
366  * @tc.require: SR000H0387
367  */
368 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceReady_0100, TestSize.Level1)
369 {
370     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceReady_0100 start";
371     bool res = true;
372 
373     try {
374         DeviceManagerAgent::GetInstance()->OnDeviceReady(deviceInfo);
375     } catch (const exception &e) {
376         LOGE("Error:%{public}s", e.what());
377         res = false;
378     }
379 
380     EXPECT_TRUE(res == true);
381     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceReady_0100 end";
382 }
383 
384 /**
385  * @tc.name: DeviceManagerAgentTest_OnDeviceP2POnline_0100
386  * @tc.desc: Verify the OnDeviceP2POnline function.
387  * @tc.type: FUNC
388  * @tc.require: I7M6L1
389  */
390 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceP2POnline_0100, TestSize.Level1)
391 {
392     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POnline_0100 start";
393     bool res = true;
394 
395     try {
396         auto ret = DeviceManagerAgent::GetInstance()->OnDeviceP2POnline(deviceInfo);
397         EXPECT_EQ(ret, 1);
398     } catch (const exception &e) {
399         LOGE("Error:%{public}s", e.what());
400         res = false;
401     }
402 
403     EXPECT_TRUE(res == true);
404     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POnline_0100 end";
405 }
406 
407 /**
408  * @tc.name: DeviceManagerAgentTest_OnDeviceP2POnline_0200
409  * @tc.desc: Verify the OnDeviceP2POnline function.
410  * @tc.type: FUNC
411  * @tc.require: I7M6L1
412  */
413 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceP2POnline_0200, TestSize.Level1)
414 {
415     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POnline_0200 start";
416     bool res = true;
417 
418     try {
419         std::vector<DmDeviceInfo> deviceList;
420         deviceList.push_back(deviceInfo);
421         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
422             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
423         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
424         auto agent1 = make_shared<SoftbusAgent>(smp);
425         string testNetWorkId = deviceInfo.networkId;
426         auto devicePtr = DeviceManagerAgent::GetInstance();
427         devicePtr->cidNetTypeRecord_.insert({ testNetWorkId, agent1 });
428         auto ret = DeviceManagerAgent::GetInstance()->OnDeviceP2POnline(deviceInfo);
429         EXPECT_EQ(ret, 1);
430 
431         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
432             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0))).WillRepeatedly(Return(0));
433         devicePtr->cidNetworkType_.insert({ testNetWorkId, NETWORKTYPE_NONE_WIFI });
434         ret = devicePtr->OnDeviceP2POnline(deviceInfo);
435         EXPECT_EQ(ret, 0);
436         devicePtr->cidNetTypeRecord_.erase(testNetWorkId);
437         devicePtr->cidNetworkType_.erase(testNetWorkId);
438     } catch (const exception &e) {
439         GTEST_LOG_(INFO) << e.what();
440         res = false;
441     }
442 
443     EXPECT_TRUE(res);
444     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POnline_0200 end";
445 }
446 
447 /**
448  * @tc.name: DeviceManagerAgentTest_OnDeviceP2POffline_0100
449  * @tc.desc: Verify the OnDeviceP2POffline function.
450  * @tc.type: FUNC
451  * @tc.require: I7M6L1
452  */
453 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceP2POffline_0100, TestSize.Level1)
454 {
455     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POffline_0100 start";
456     bool res = true;
457 
458     try {
459         auto ret = DeviceManagerAgent::GetInstance()->OnDeviceP2POffline(deviceInfo);
460         EXPECT_EQ(ret, 1);
461     } catch (const exception &e) {
462         LOGE("Error:%{public}s", e.what());
463         res = false;
464     }
465 
466     EXPECT_TRUE(res == true);
467     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POffline_0100 end";
468 }
469 
470 /**
471  * @tc.name: DeviceManagerAgentTest_OnDeviceP2POffline_0200
472  * @tc.desc: Verify the OnDeviceP2POffline function.
473  * @tc.type: FUNC
474  * @tc.require: I7M6L1
475  */
476 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceP2POffline_0200, TestSize.Level1)
477 {
478     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POffline_0200 start";
479     bool res = true;
480 
481     try {
482         DeviceManagerAgent::GetInstance()->OnDeviceP2POnline(deviceInfo);
483         DeviceManagerAgent::GetInstance()->OnDeviceP2POffline(deviceInfo);
484     } catch (const exception &e) {
485         LOGE("Error:%{public}s", e.what());
486         res = false;
487     }
488 
489     EXPECT_TRUE(res == true);
490     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POffline_0200 end";
491 }
492 
493 /**
494  * @tc.name: DeviceManagerAgentTest_OnDeviceP2POffline_0300
495  * @tc.desc: Verify the OnDeviceP2POffline function.
496  * @tc.type: FUNC
497  * @tc.require: I7M6L1
498  */
499 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnDeviceP2POffline_0300, TestSize.Level1)
500 {
501     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POffline_0300 start";
502     bool res = true;
503 
504     try {
505         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
506         auto agent1 = make_shared<SoftbusAgent>(smp);
507         (void)memcpy_s(deviceInfo.networkId, DM_MAX_DEVICE_NAME_LEN - 1,
508                        NETWORKID_TWO.c_str(), NETWORKID_TWO.size());
509         auto devicePtr = DeviceManagerAgent::GetInstance();
510         devicePtr->cidNetTypeRecord_.clear();
511         devicePtr->cidNetworkType_.clear();
512         devicePtr->cidNetTypeRecord_.insert({ NETWORKID_TWO, agent1 });
513         auto ret = devicePtr->OnDeviceP2POffline(deviceInfo);
514         EXPECT_EQ(ret, 1);
515         devicePtr->cidNetworkType_.insert({ NETWORKID_TWO, NETWORKTYPE_NONE_WIFI });
516         ret = devicePtr->OnDeviceP2POffline(deviceInfo);
517         EXPECT_EQ(ret, 0);
518         auto iter = devicePtr->cidNetTypeRecord_.find(NETWORKID_TWO);
519         if (iter != devicePtr->cidNetTypeRecord_.end()) {
520             res = false;
521         }
522 
523         auto iterType = devicePtr->cidNetworkType_.find(NETWORKID_TWO);
524         if (iterType != devicePtr->cidNetworkType_.end()) {
525             res = false;
526         }
527     } catch (const exception &e) {
528         GTEST_LOG_(INFO) << e.what();
529         res = false;
530     }
531 
532     EXPECT_TRUE(res);
533     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnDeviceP2POffline_0300 end";
534 }
535 
536 /**
537  * @tc.name: DeviceManagerAgentTest_StopInstance_0100
538  * @tc.desc: Verify the StopInstance function.
539  * @tc.type: FUNC
540  * @tc.require: I7TDJK
541  */
542 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_StopInstance_0100, TestSize.Level1)
543 {
544     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_StopInstance_0100 start";
545     bool res = true;
546 
547     try {
548         DeviceManagerAgent::GetInstance()->StopInstance();
549     } catch (const exception &e) {
550         LOGE("Error:%{public}s", e.what());
551         res = false;
552     }
553 
554     EXPECT_TRUE(res == true);
555     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_StopInstance_0100 end";
556 }
557 
558 /**
559  * @tc.name: DeviceManagerAgentTest_Stop_0100
560  * @tc.desc: Verify the Stop function.
561  * @tc.type: FUNC
562  * @tc.require: I7TDJK
563  */
564 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_Stop_0100, TestSize.Level1)
565 {
566     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_Stop_0100 start";
567     bool res = true;
568 
569     try {
570         DeviceManagerAgent::GetInstance()->Start();
571         DeviceManagerAgent::GetInstance()->Stop();
572     } catch (const exception &e) {
573         LOGE("Error:%{public}s", e.what());
574         res = false;
575     }
576 
577     EXPECT_TRUE(res == true);
578     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_Stop_0100 end";
579 }
580 
581 /**
582  * @tc.name: DeviceManagerAgentTest_JoinGroup_0100
583  * @tc.desc: Verify the JoinGroup function.
584  * @tc.type: FUNC
585  * @tc.require: I7TDJK
586  */
587 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_JoinGroup_0100, TestSize.Level1)
588 {
589     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_JoinGroup_0100 start";
590     bool res = true;
591 
592     try {
593 
594         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
595         DeviceManagerAgent::GetInstance()->JoinGroup(smp);
596         GTEST_LOG_(INFO) << smp->GetID();
597         auto it = DeviceManagerAgent::GetInstance()->mpToNetworks_.find(smp->GetID());
598         if (it == DeviceManagerAgent::GetInstance()->mpToNetworks_.end()) {
599             EXPECT_TRUE(false);
600         } else {
601             EXPECT_TRUE(true);
602         }
603         DeviceManagerAgent::GetInstance()->QuitGroup(smp);
604         it = DeviceManagerAgent::GetInstance()->mpToNetworks_.find(smp->GetID());
605         if (it == DeviceManagerAgent::GetInstance()->mpToNetworks_.end()) {
606             EXPECT_TRUE(true);
607         } else {
608             EXPECT_TRUE(false);
609         }
610     } catch (const exception &e) {
611         GTEST_LOG_(INFO) << e.what();
612         res = false;
613     }
614 
615     EXPECT_TRUE(res == true);
616     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_JoinGroup_0100 end";
617 }
618 
619 /**
620  * @tc.name: DeviceManagerAgentTest_JoinGroup_0200
621  * @tc.desc: Verify the JoinGroup function.
622  * @tc.type: FUNC
623  * @tc.require: I7TDJK
624  */
625 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_JoinGroup_0200, TestSize.Level1)
626 {
627     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_JoinGroup_0200 start";
628     bool res = true;
629 
630     try {
631         weak_ptr<MountPoint> nullwmp;
632         DeviceManagerAgent::GetInstance()->JoinGroup(nullwmp);
633     } catch (const exception &e) {
634         EXPECT_EQ(string(e.what()), "Failed to join group: Received empty mountpoint");
635         res = false;
636     }
637 
638     EXPECT_FALSE(res);
639     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_JoinGroup_0200 end";
640 }
641 
642 /**
643  * @tc.name: DeviceManagerAgentTest_JoinGroup_0100
644  * @tc.desc: Verify the JoinGroup function.
645  * @tc.type: FUNC
646  * @tc.require: I7TDJK
647  */
648 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_JoinGroup_0300, TestSize.Level1)
649 {
650     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_JoinGroup_0300 start";
651     bool res = true;
652 
653     try {
654         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
655         DeviceManagerAgent::GetInstance()->JoinGroup(smp);
656         DeviceManagerAgent::GetInstance()->JoinGroup(smp);
657         DeviceManagerAgent::GetInstance()->QuitGroup(smp);
658     } catch (const exception &e) {
659         EXPECT_EQ(string(e.what()), "Failed to join group: Mountpoint existed");
660         res = false;
661     }
662 
663     EXPECT_FALSE(res);
664     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_JoinGroup_0300 end";
665 }
666 
667 /**
668  * @tc.name: DeviceManagerAgentTest_QuitGroup_0100
669  * @tc.desc: Verify the QuitGroup function.
670  * @tc.type: FUNC
671  * @tc.require: I7TDJK
672  */
673 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_QuitGroup_0100, TestSize.Level1)
674 {
675     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_QuitGroup_0100 start";
676     bool res = true;
677 
678     try {
679         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
680         DeviceManagerAgent::GetInstance()->QuitGroup(smp);
681     } catch (const exception &e) {
682         EXPECT_EQ(string(e.what()), "Failed to quit group: Mountpoint didn't exist ");
683         res = false;
684     }
685 
686     EXPECT_TRUE(res != true);
687     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_QuitGroup_0100 end";
688 }
689 
690 /**
691  * @tc.name: DeviceManagerAgentTest_QuitGroup_0200
692  * @tc.desc: Verify the QuitGroup function.
693  * @tc.type: FUNC
694  * @tc.require: I7TDJK
695  */
696 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_QuitGroup_0200, TestSize.Level1)
697 {
698     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_QuitGroup_0200 start";
699     bool res = true;
700 
701     try {
702         shared_ptr<MountPoint> nullwmp;
703         DeviceManagerAgent::GetInstance()->QuitGroup(nullwmp);
704     } catch (const exception &e) {
705         EXPECT_EQ(string(e.what()), "Failed to quit group: Received empty mountpoint");
706         res = false;
707     }
708 
709     EXPECT_FALSE(res);
710     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_QuitGroup_0200 end";
711 }
712 
713 /**
714  * @tc.name: DeviceManagerAgentTest_OfflineAllDevice_0100
715  * @tc.desc: Verify the OfflineAllDevice function.
716  * @tc.type: FUNC
717  * @tc.require: I7TDJK
718  */
719 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OfflineAllDevice_0100, TestSize.Level1)
720 {
721     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OfflineAllDevice_0100 start";
722     bool res = true;
723 
724     try {
725         DeviceManagerAgent::GetInstance()->OfflineAllDevice();
726     } catch (const exception &e) {
727         LOGE("Error:%{public}s", e.what());
728         res = false;
729     }
730 
731     EXPECT_TRUE(res == true);
732     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OfflineAllDevice_0100 end";
733 }
734 
735 /**
736  * @tc.name: DeviceManagerAgentTest_OfflineAllDevice_0200
737  * @tc.desc: Verify the OfflineAllDevice function.
738  * @tc.type: FUNC
739  * @tc.require: I7TDJK
740  */
741 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OfflineAllDevice_0200, TestSize.Level1)
742 {
743     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OfflineAllDevice_0200 start";
744     bool res = true;
745 
746     try {
747         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
748         auto agent1 = make_shared<SoftbusAgent>(smp);
749         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.insert({ "test1", agent1 });
750         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.insert({ "test2", nullptr });
751 
752         DeviceManagerAgent::GetInstance()->OfflineAllDevice();
753         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.erase("test1");
754         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.erase("test2");
755     } catch (const exception &e) {
756         GTEST_LOG_(INFO) << e.what();
757         res = false;
758     }
759 
760     EXPECT_TRUE(res == true);
761     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OfflineAllDevice_0200 end";
762 }
763 
764 /**
765  * @tc.name: DeviceManagerAgentTest_ReconnectOnlineDevices_0100
766  * @tc.desc: Verify the ReconnectOnlineDevices function.
767  * @tc.type: FUNC
768  * @tc.require: I7TDJK
769  */
770 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_ReconnectOnlineDevices_0100, TestSize.Level1)
771 {
772     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_ReconnectOnlineDevices_0100 start";
773     bool res = true;
774 
775     try {
776         DeviceManagerAgent::GetInstance()->ReconnectOnlineDevices();
777     } catch (const exception &e) {
778         GTEST_LOG_(INFO) << e.what();
779         res = false;
780     }
781 
782     EXPECT_TRUE(res == true);
783     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_ReconnectOnlineDevices_0100 end";
784 }
785 
786 /**
787  * @tc.name: DeviceManagerAgentTest_ReconnectOnlineDevices_0200
788  * @tc.desc: Verify the ReconnectOnlineDevices function.
789  * @tc.type: FUNC
790  * @tc.require: I7TDJK
791  */
792 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_ReconnectOnlineDevices_0200, TestSize.Level1)
793 {
794     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_ReconnectOnlineDevices_0200 start";
795     bool res = true;
796 
797     try {
798         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
799         auto agent1 = make_shared<SoftbusAgent>(smp);
800         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.insert({ "test1", agent1 });
801         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.insert({ "test2", nullptr });
802         DeviceManagerAgent::GetInstance()->ReconnectOnlineDevices();
803         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.erase("test1");
804         DeviceManagerAgent::GetInstance()->cidNetTypeRecord_.erase("test2");
805     } catch (const exception &e) {
806         GTEST_LOG_(INFO) << e.what();
807         res = false;
808     }
809 
810     EXPECT_TRUE(res == true);
811     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_ReconnectOnlineDevices_0200 end";
812 }
813 
814 /**
815  * @tc.name: DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0100
816  * @tc.desc: Verify the FindNetworkBaseTrustRelation function.
817  * @tc.type: FUNC
818  * @tc.require: I7TDJK
819  */
820 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0100, TestSize.Level1)
821 {
822     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0100 start";
823     bool res = true;
824 
825     try {
826         auto rltPtr = DeviceManagerAgent::GetInstance()->FindNetworkBaseTrustRelation(true);
827         EXPECT_EQ(rltPtr, nullptr);
828         rltPtr = DeviceManagerAgent::GetInstance()->FindNetworkBaseTrustRelation(false);
829         EXPECT_EQ(rltPtr, nullptr);
830     } catch (const exception &e) {
831         LOGE("Error:%{public}s", e.what());
832         res = false;
833     }
834 
835     EXPECT_TRUE(res == true);
836     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0100 end";
837 }
838 
839 /**
840  * @tc.name: DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0200
841  * @tc.desc: Verify the FindNetworkBaseTrustRelation function.
842  * @tc.type: FUNC
843  * @tc.require: I7TDJK
844  */
845 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0200, TestSize.Level1)
846 {
847     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0200 start";
848     bool res = true;
849 
850     try {
851         auto smp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(100, "relativePath"));
852         DeviceManagerAgent::GetInstance()->JoinGroup(smp);
853         auto rltPtr = DeviceManagerAgent::GetInstance()->FindNetworkBaseTrustRelation(true);
854         EXPECT_EQ(rltPtr, nullptr);
855         rltPtr = DeviceManagerAgent::GetInstance()->FindNetworkBaseTrustRelation(false);
856         EXPECT_NE(rltPtr, nullptr);
857         DeviceManagerAgent::GetInstance()->QuitGroup(smp);
858 
859     } catch (const exception &e) {
860         LOGE("Error:%{public}s", e.what());
861         res = false;
862     }
863 
864     EXPECT_TRUE(res == true);
865     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0200 end";
866 }
867 
868 /**
869  * @tc.name: DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0300
870  * @tc.desc: Verify the FindNetworkBaseTrustRelation function.
871  * @tc.type: FUNC
872  * @tc.require: I7TDJK
873  */
874 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0300, TestSize.Level1)
875 {
876     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0300 start";
877     bool res = true;
878 
879     try {
880         auto nonmp = make_shared<MountPoint>(Utils::DfsuMountArgumentDescriptors::Alpha(101, "non_account"));
881         DeviceManagerAgent::GetInstance()->JoinGroup(nonmp);
882         auto id = nonmp->GetID() + 1;
883         DeviceManagerAgent::GetInstance()->mpToNetworks_.insert({ id, nullptr });
884         shared_ptr<SoftbusAgent> agent = nullptr;
885         auto rltPtr = DeviceManagerAgent::GetInstance()->FindNetworkBaseTrustRelation(true);
886         EXPECT_NE(rltPtr, nullptr);
887         rltPtr = DeviceManagerAgent::GetInstance()->FindNetworkBaseTrustRelation(false);
888         EXPECT_EQ(rltPtr, nullptr);
889         DeviceManagerAgent::GetInstance()->QuitGroup(nonmp);
890         DeviceManagerAgent::GetInstance()->mpToNetworks_.erase(id);
891     } catch (const exception &e) {
892         LOGE("Error:%{public}s", e.what());
893         res = false;
894     }
895 
896     EXPECT_TRUE(res == true);
897     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_FindNetworkBaseTrustRelation_0300 end";
898 }
899 
900 /**
901  * @tc.name: DeviceManagerAgentTest_GetNetworkType_0100
902  * @tc.desc: Verify the GetNetworkType function.
903  * @tc.type: FUNC
904  * @tc.require: I7TDJK
905  */
906 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_GetNetworkType_0100, TestSize.Level1)
907 {
908     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_GetNetworkType_0100 start";
909     bool res = true;
910 
911     try {
912         int ret = DeviceManagerAgent::GetInstance()->GetNetworkType(NETWORKID_ONE);
913         EXPECT_EQ(ret, 0);
914         ret = DeviceManagerAgent::GetInstance()->GetNetworkType(NETWORKID_TWO);
915         EXPECT_EQ(ret, NETWORKTYPE_WITH_WIFI);
916         ret = DeviceManagerAgent::GetInstance()->GetNetworkType(NETWORKID_THREE);
917         EXPECT_EQ(ret, NETWORKTYPE_NONE_WIFI);
918     } catch (const exception &e) {
919         LOGE("Error:%{public}s", e.what());
920         res = false;
921     }
922 
923     EXPECT_TRUE(res == true);
924     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_GetNetworkType_0100 end";
925 }
926 
927 /**
928  * @tc.name: DeviceManagerAgentTest_IsWifiNetworkType_0100
929  * @tc.desc: Verify the IsWifiNetworkType function.
930  * @tc.type: FUNC
931  * @tc.require: I7TDJK
932  */
933 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_IsWifiNetworkType_0100, TestSize.Level1)
934 {
935     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_IsWifiNetworkType_0100 start";
936     bool res = true;
937 
938     try {
939         int ret = DeviceManagerAgent::GetInstance()->IsWifiNetworkType(-1);
940         EXPECT_FALSE(ret);
941         ret = DeviceManagerAgent::GetInstance()->IsWifiNetworkType(1);
942         EXPECT_FALSE(ret);
943         ret = DeviceManagerAgent::GetInstance()->IsWifiNetworkType(3);
944         EXPECT_TRUE(ret);
945     } catch (const exception &e) {
946         LOGE("Error:%{public}s", e.what());
947         res = false;
948     }
949 
950     EXPECT_TRUE(res == true);
951     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_IsWifiNetworkType_0100 end";
952 }
953 
954 /**
955  * @tc.name: DeviceManagerAgentTest_CheckIsAccountless_0100
956  * @tc.desc: Verify the CheckIsAccountless function.
957  * @tc.type: FUNC
958  * @tc.require: I7TDJK
959  */
960 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_CheckIsAccountless_0100, TestSize.Level1)
961 {
962     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_CheckIsAccountless_0100 start";
963     bool res = true;
964 
965     try {
966         GroupInfo group{};
967         g_parameterVaule = false;
968         auto ret = DeviceManagerAgent::GetInstance()->CheckIsAccountless(group);
969         EXPECT_TRUE(ret);
970     } catch (const exception &e) {
971         GTEST_LOG_(INFO) << e.what();
972         res = false;
973     }
974 
975     EXPECT_TRUE(res);
976     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_CheckIsAccountless_0100 end";
977 }
978 
979 /**
980  * @tc.name: DeviceManagerAgentTest_CheckIsAccountless_0200
981  * @tc.desc: Verify the CheckIsAccountless function.
982  * @tc.type: FUNC
983  * @tc.require: I7TDJK
984  */
985 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_CheckIsAccountless_0200, TestSize.Level1)
986 {
987     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_CheckIsAccountless_0200 start";
988     bool res = true;
989 
990     try {
991         GroupInfo group{};
992         g_parameterVaule = true;
993         auto ret = DeviceManagerAgent::GetInstance()->CheckIsAccountless(group);
994         EXPECT_FALSE(ret);
995     } catch (const exception &e) {
996         GTEST_LOG_(INFO) << e.what();
997         res = false;
998     }
999 
1000     EXPECT_TRUE(res);
1001     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_CheckIsAccountless_0200 end";
1002 }
1003 
1004 /**
1005  * @tc.name: DeviceManagerAgentTest_InitDeviceInfos_0100
1006  * @tc.desc: Verify the InitDeviceInfos function.
1007  * @tc.type: FUNC
1008  * @tc.require: I7TDJK
1009  */
1010 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_InitDeviceInfos_0100, TestSize.Level1)
1011 {
1012     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitDeviceInfos_0100 start";
1013     bool res = true;
1014 
1015     try {
1016         std::vector<DmDeviceInfo> deviceList;
1017         deviceList.push_back(deviceInfo);
1018         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
1019             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)))
1020             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
1021         DeviceManagerAgent::GetInstance()->InitDeviceInfos();
1022     } catch (const exception &e) {
1023         GTEST_LOG_(INFO) << e.what();
1024         res = false;
1025     }
1026 
1027     EXPECT_TRUE(res == true);
1028     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitDeviceInfos_0100 end";
1029 }
1030 
1031 /**
1032  * @tc.name: DeviceManagerAgentTest_InitDeviceInfos_0200
1033  * @tc.desc: Verify the InitDeviceInfos function.
1034  * @tc.type: FUNC
1035  * @tc.require: I7TDJK
1036  */
1037 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_InitDeviceInfos_0200, TestSize.Level1)
1038 {
1039     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitDeviceInfos_0200 start";
1040     bool res = true;
1041 
1042     try {
1043         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _)).WillOnce(Return(-1));
1044         DeviceManagerAgent::GetInstance()->InitDeviceInfos();
1045     } catch (const exception &e) {
1046         GTEST_LOG_(INFO) << e.what();
1047         res = false;
1048     }
1049 
1050     EXPECT_FALSE(res);
1051     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitDeviceInfos_0200 end";
1052 }
1053 
1054 /**
1055  * @tc.name: DeviceManagerAgentTest_InitDeviceInfos_0300
1056  * @tc.desc: Verify the InitDeviceInfos function.
1057  * @tc.type: FUNC
1058  * @tc.require: I7TDJK
1059  */
1060 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_InitDeviceInfos_0300, TestSize.Level1)
1061 {
1062     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitDeviceInfos_0300 start";
1063     bool res = true;
1064 
1065     try {
1066         std::vector<DmDeviceInfo> deviceList;
1067         deviceList.push_back(deviceInfo);
1068         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
1069             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0))).WillOnce(Return(0));
1070         DeviceManagerAgent::GetInstance()->InitDeviceInfos();
1071     } catch (const exception &e) {
1072         GTEST_LOG_(INFO) << e.what();
1073         res = false;
1074     }
1075 
1076     EXPECT_TRUE(res);
1077     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitDeviceInfos_0300 end";
1078 }
1079 
1080 /**
1081  * @tc.name: DeviceManagerAgentTest_InitLocalNodeInfo_0100
1082  * @tc.desc: Verify the InitLocalNodeInfo function.
1083  * @tc.type: FUNC
1084  * @tc.require: I7TDJK
1085  */
1086 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_InitLocalNodeInfo_0100, TestSize.Level1)
1087 {
1088     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitLocalNodeInfo_0100 start";
1089     bool res = true;
1090 
1091     try {
1092         EXPECT_CALL(*deviceManagerImplMock_, GetLocalDeviceInfo(_, _)).WillOnce(Return(0));
1093         DeviceManagerAgent::GetInstance()->InitLocalNodeInfo();
1094     } catch (const exception &e) {
1095         LOGE("Error:%{public}s", e.what());
1096         res = false;
1097     }
1098 
1099     EXPECT_TRUE(res == true);
1100     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitLocalNodeInfo_0100 end";
1101 }
1102 
1103 /**
1104  * @tc.name: DeviceManagerAgentTest_InitLocalNodeInfo_0100
1105  * @tc.desc: Verify the InitLocalNodeInfo function.
1106  * @tc.type: FUNC
1107  * @tc.require: I7TDJK
1108  */
1109 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_InitLocalNodeInfo_0200, TestSize.Level1)
1110 {
1111     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitLocalNodeInfo_0200 start";
1112     bool res = true;
1113 
1114     try {
1115         EXPECT_CALL(*deviceManagerImplMock_, GetLocalDeviceInfo(_, _)).WillOnce(Return(-1));
1116         DeviceManagerAgent::GetInstance()->InitLocalNodeInfo();
1117     } catch (const exception &e) {
1118         GTEST_LOG_(INFO) << e.what();
1119         res = false;
1120     }
1121 
1122     EXPECT_FALSE(res);
1123     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_InitLocalNodeInfo_0200 end";
1124 }
1125 
1126 /**
1127  * @tc.name: DeviceManagerAgentTest_OnRemoteDied_0100
1128  * @tc.desc: Verify the OnRemoteDied function.
1129  * @tc.type: FUNC
1130  * @tc.require: I7TDJK
1131  */
1132 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_OnRemoteDied_0100, TestSize.Level1)
1133 {
1134     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnRemoteDied_0100 start";
1135     bool res = true;
1136 
1137     try {
1138         DeviceManagerAgent::GetInstance()->OnRemoteDied();
1139     } catch (const exception &e) {
1140         LOGE("Error:%{public}s", e.what());
1141         res = false;
1142     }
1143 
1144     EXPECT_TRUE(res == true);
1145     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_OnRemoteDied_0100 end";
1146 }
1147 
1148 /**
1149  * @tc.name: DeviceManagerAgentTest_GetLocalDeviceInfo_0100
1150  * @tc.desc: Verify the GetLocalDeviceInfo function.
1151  * @tc.type: FUNC
1152  * @tc.require: I7TDJK
1153  */
1154 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_GetLocalDeviceInfo_0100, TestSize.Level1)
1155 {
1156     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_GetLocalDeviceInfo_0100 start";
1157     bool res = true;
1158 
1159     try {
1160         DeviceManagerAgent::GetInstance()->GetLocalDeviceInfo();
1161     } catch (const exception &e) {
1162         LOGE("Error:%{public}s", e.what());
1163         res = false;
1164     }
1165 
1166     EXPECT_TRUE(res == true);
1167     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_GetLocalDeviceInfo_0100 end";
1168 }
1169 
1170 /**
1171  * @tc.name: DeviceManagerAgentTest_GetRemoteDevicesInfo_0100
1172  * @tc.desc: Verify the GetRemoteDevicesInfo function.
1173  * @tc.type: FUNC
1174  * @tc.require: I7TDJK
1175  */
1176 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_GetRemoteDevicesInfo_0100, TestSize.Level1)
1177 {
1178     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_GetRemoteDevicesInfo_0100 start";
1179     bool res = true;
1180 
1181     try {
1182         std::vector<DmDeviceInfo> deviceList;
1183         deviceList.push_back(deviceInfo);
1184         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
1185             .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
1186         auto info = DeviceManagerAgent::GetInstance()->GetRemoteDevicesInfo();
1187         EXPECT_NE(info.size(), 0);
1188     } catch (const exception &e) {
1189         GTEST_LOG_(INFO) << e.what();
1190         res = false;
1191     }
1192 
1193     EXPECT_TRUE(res == true);
1194     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_GetRemoteDevicesInfo_0100 end";
1195 }
1196 
1197 /**
1198  * @tc.name: DeviceManagerAgentTest_GetRemoteDevicesInfo_0200
1199  * @tc.desc: Verify the GetRemoteDevicesInfo function.
1200  * @tc.type: FUNC
1201  * @tc.require: I7TDJK
1202  */
1203 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_GetRemoteDevicesInfo_0200, TestSize.Level1)
1204 {
1205     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_GetRemoteDevicesInfo_0200 start";
1206     bool res = true;
1207 
1208     try {
1209         EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _)).WillOnce(Return(-1));
1210         auto info = DeviceManagerAgent::GetInstance()->GetRemoteDevicesInfo();
1211         EXPECT_NE(info.size(), 0);
1212     } catch (const exception &e) {
1213         GTEST_LOG_(INFO) << e.what();
1214         res = false;
1215     }
1216 
1217     EXPECT_FALSE(res);
1218     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_GetRemoteDevicesInfo_0200 end";
1219 }
1220 
1221 /**
1222  * @tc.name: DeviceManagerAgentTest_RegisterToExternalDm_0100
1223  * @tc.desc: Verify the RegisterToExternalDm function.
1224  * @tc.type: FUNC
1225  * @tc.require: I7TDJK
1226  */
1227 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_RegisterToExternalDm_0100, TestSize.Level1)
1228 {
1229     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_RegisterToExternalDm_0100 start";
1230     bool res = true;
1231 
1232     try {
1233         EXPECT_CALL(*deviceManagerImplMock_, InitDeviceManager(_, _)).WillOnce(Return(-1));
1234         DeviceManagerAgent::GetInstance()->RegisterToExternalDm();
1235     } catch (const exception &e) {
1236         string errMsg = e.what();
1237         EXPECT_NE(errMsg.find("Failed to InitDeviceManager"), string::npos);
1238         res = false;
1239     }
1240 
1241     EXPECT_FALSE(res);
1242     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_RegisterToExternalDm_0100 end";
1243 }
1244 
1245 /**
1246  * @tc.name: DeviceManagerAgentTest_RegisterToExternalDm_0100
1247  * @tc.desc: Verify the RegisterToExternalDm function.
1248  * @tc.type: FUNC
1249  * @tc.require: I7TDJK
1250  */
1251 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_RegisterToExternalDm_0200, TestSize.Level1)
1252 {
1253     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_RegisterToExternalDm_0200 start";
1254     bool res = true;
1255 
1256     try {
1257         EXPECT_CALL(*deviceManagerImplMock_, InitDeviceManager(_, _)).WillOnce(Return(0));
1258         EXPECT_CALL(*deviceManagerImplMock_, RegisterDevStateCallback(_, _, _)).WillOnce(Return(-1));
1259         DeviceManagerAgent::GetInstance()->RegisterToExternalDm();
1260     } catch (const exception &e) {
1261         string errMsg = e.what();
1262         EXPECT_NE(errMsg.find("Failed to RegisterDevStateCallback"), string::npos);
1263         res = false;
1264     }
1265 
1266     EXPECT_FALSE(res);
1267     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_RegisterToExternalDm_0200 end";
1268 }
1269 
1270 /**
1271  * @tc.name: DeviceManagerAgentTest_RegisterToExternalDm_0300
1272  * @tc.desc: Verify the RegisterToExternalDm function.
1273  * @tc.type: FUNC
1274  * @tc.require: I7TDJK
1275  */
1276 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_RegisterToExternalDm_0300, TestSize.Level1)
1277 {
1278     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_RegisterToExternalDm_0300 start";
1279     bool res = true;
1280 
1281     try {
1282         EXPECT_CALL(*deviceManagerImplMock_, InitDeviceManager(_, _)).WillOnce(Return(0));
1283         EXPECT_CALL(*deviceManagerImplMock_, RegisterDevStateCallback(_, _, _)).WillOnce(Return(0));
1284         DeviceManagerAgent::GetInstance()->RegisterToExternalDm();
1285     } catch (const exception &e) {
1286         GTEST_LOG_(INFO) << e.what();
1287         res = false;
1288     }
1289 
1290     EXPECT_TRUE(res);
1291     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_RegisterToExternalDm_0300 end";
1292 }
1293 
1294 /**
1295  * @tc.name: DeviceManagerAgentTest_UnregisterFromExternalDm_0100
1296  * @tc.desc: Verify the UnregisterFromExternalDm function.
1297  * @tc.type: FUNC
1298  * @tc.require: I7TDJK
1299  */
1300 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_UnregisterFromExternalDm_0100, TestSize.Level1)
1301 {
1302     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_UnregisterFromExternalDm_0100 start";
1303     bool res = true;
1304 
1305     try {
1306         EXPECT_CALL(*deviceManagerImplMock_, UnRegisterDevStateCallback(_)).WillOnce(Return(-1));
1307         DeviceManagerAgent::GetInstance()->UnregisterFromExternalDm();
1308     } catch (const exception &e) {
1309         string errMsg = e.what();
1310         EXPECT_NE(errMsg.find("Failed to UnRegisterDevStateCallback"), string::npos);
1311         res = false;
1312     }
1313 
1314     EXPECT_FALSE(res);
1315     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_UnregisterFromExternalDm_0100 end";
1316 }
1317 
1318 /**
1319  * @tc.name: DeviceManagerAgentTest_UnregisterFromExternalDm_0200
1320  * @tc.desc: Verify the UnregisterFromExternalDm function.
1321  * @tc.type: FUNC
1322  * @tc.require: I7TDJK
1323  */
1324 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_UnregisterFromExternalDm_0200, TestSize.Level1)
1325 {
1326     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_UnregisterFromExternalDm_0200 start";
1327     bool res = true;
1328 
1329     try {
1330         EXPECT_CALL(*deviceManagerImplMock_, UnRegisterDevStateCallback(_)).WillOnce(Return(0));
1331         EXPECT_CALL(*deviceManagerImplMock_, UnInitDeviceManager(_)).WillOnce(Return(-1));
1332         DeviceManagerAgent::GetInstance()->UnregisterFromExternalDm();
1333     } catch (const exception &e) {
1334         string errMsg = e.what();
1335         EXPECT_NE(errMsg.find("Failed to UnInitDeviceManager"), string::npos);
1336         res = false;
1337     }
1338 
1339     EXPECT_FALSE(res);
1340     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_UnregisterFromExternalDm_0200 end";
1341 }
1342 
1343 /**
1344  * @tc.name: DeviceManagerAgentTest_UnregisterFromExternalDm_0300
1345  * @tc.desc: Verify the UnregisterFromExternalDm function.
1346  * @tc.type: FUNC
1347  * @tc.require: I7TDJK
1348  */
1349 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_UnregisterFromExternalDm_0300, TestSize.Level1)
1350 {
1351     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_UnregisterFromExternalDm_0300 start";
1352     bool res = true;
1353 
1354     try {
1355         EXPECT_CALL(*deviceManagerImplMock_, UnRegisterDevStateCallback(_)).WillOnce(Return(0));
1356         EXPECT_CALL(*deviceManagerImplMock_, UnInitDeviceManager(_)).WillOnce(Return(0));
1357         DeviceManagerAgent::GetInstance()->UnregisterFromExternalDm();
1358     } catch (const exception &e) {
1359         GTEST_LOG_(INFO) << e.what();
1360         res = false;
1361     }
1362 
1363     EXPECT_TRUE(res);
1364     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_UnregisterFromExternalDm_0300 end";
1365 }
1366 
1367 /**
1368  * @tc.name: DeviceManagerAgentTest_QueryRelatedGroups_0100
1369  * @tc.desc: Verify the QueryRelatedGroups function.
1370  * @tc.type: FUNC
1371  * @tc.require: I7TDJK
1372  */
1373 HWTEST_F(DeviceManagerAgentTest, DeviceManagerAgentTest_QueryRelatedGroups_0100, TestSize.Level1)
1374 {
1375     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_QueryRelatedGroups_0100 start";
1376     bool res = true;
1377 
1378     try {
1379         DeviceManagerAgent::GetInstance()->QueryRelatedGroups("100", "100");
1380     } catch (const exception &e) {
1381         LOGE("Error:%{public}s", e.what());
1382         res = false;
1383     }
1384 
1385     EXPECT_TRUE(res == true);
1386     GTEST_LOG_(INFO) << "DeviceManagerAgentTest_QueryRelatedGroups_0100 end";
1387 }
1388 } // namespace Test
1389 } // namespace DistributedFile
1390 } // namespace Storage
1391 } // namespace OHOS
1392