• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 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 "distributed_hardware_manager_test.h"
17 
18 #include <chrono>
19 #include <thread>
20 #include <vector>
21 
22 #include "constants.h"
23 #include "dh_context.h"
24 #include "distributed_hardware_errno.h"
25 #include "distributed_hardware_log.h"
26 #include "distributed_hardware_manager.h"
27 #include "task_board.h"
28 
29 using namespace testing::ext;
30 
31 namespace OHOS {
32 namespace DistributedHardware {
33 /* save networkId and uuid */
34 const std::vector<std::pair<std::string, std::string>> TEST_DEVICES = {
35     { "11111111111111111111111111111111", "22222222222222222222222222222222" },
36     { "33333333333333333333333333333333", "44444444444444444444444444444444" },
37 };
38 constexpr uint16_t TEST_DEV_TYPE_PAD = 0x11;
39 
SetUpTestCase(void)40 void DistributedHardwareManagerTest::SetUpTestCase(void) {}
41 
TearDownTestCase(void)42 void DistributedHardwareManagerTest::TearDownTestCase(void) {}
43 
SetUp()44 void DistributedHardwareManagerTest::SetUp()
45 {
46     for (auto device : TEST_DEVICES) {
47         DHContext::GetInstance().RemoveOnlineDevice(device.second);
48     }
49 }
50 
TearDown()51 void DistributedHardwareManagerTest::TearDown() {}
52 
53 /**
54  * @tc.name: sendOnLineEvent_test_001
55  * @tc.desc: Verify the SendOnLineEvent success
56  * @tc.type: FUNC
57  * @tc.require: AR000GHSJM
58  */
59 HWTEST_F(DistributedHardwareManagerTest, sendOnLineEvent_test_001, TestSize.Level0)
60 {
61     auto onlineResult = DistributedHardwareManager::GetInstance().SendOnLineEvent(TEST_DEVICES[0].first,
62         TEST_DEVICES[0].second, TEST_DEV_TYPE_PAD);
63     ASSERT_EQ(DH_FWK_SUCCESS, onlineResult);
64 
65     ASSERT_EQ(DH_FWK_SUCCESS, TaskBoard::GetInstance().WaitForALLTaskFinish());
66     ASSERT_TRUE(TaskBoard::GetInstance().IsAllTaskFinish());
67 }
68 
69 /**
70  * @tc.name: sendOnLineEvent_test_002
71  * @tc.desc: Verify the SendOnLineEvent repeate online
72  * @tc.type: FUNC
73  * @tc.require: AR000GHSJM
74  */
75 HWTEST_F(DistributedHardwareManagerTest, sendOnLineEvent_test_002, TestSize.Level0)
76 {
77     auto onlineResult = DistributedHardwareManager::GetInstance().SendOnLineEvent(TEST_DEVICES[0].first,
78         TEST_DEVICES[0].second, TEST_DEV_TYPE_PAD);
79     ASSERT_EQ(DH_FWK_SUCCESS, onlineResult);
80 
81     onlineResult = DistributedHardwareManager::GetInstance().SendOnLineEvent(TEST_DEVICES[0].first,
82         TEST_DEVICES[0].second, TEST_DEV_TYPE_PAD);
83     ASSERT_EQ(DH_FWK_SUCCESS, onlineResult);
84 
85     ASSERT_EQ(DH_FWK_SUCCESS, TaskBoard::GetInstance().WaitForALLTaskFinish());
86     ASSERT_TRUE(TaskBoard::GetInstance().IsAllTaskFinish());
87 }
88 
89 /**
90  * @tc.name: sendOnLineEvent_test_003
91  * @tc.desc: Verify the SendOnLineEvent failed for uuid is empty
92  * @tc.type: FUNC
93  * @tc.require: AR000GHSJM
94  */
95 HWTEST_F(DistributedHardwareManagerTest, sendOnLineEvent_test_003, TestSize.Level0)
96 {
97     auto onlineResult = DistributedHardwareManager::GetInstance().SendOnLineEvent("", "", TEST_DEV_TYPE_PAD);
98     ASSERT_EQ(ERR_DH_FWK_PARA_INVALID, onlineResult);
99 
100     onlineResult =
101         DistributedHardwareManager::GetInstance().SendOnLineEvent(TEST_DEVICES[0].first, "", TEST_DEV_TYPE_PAD);
102     ASSERT_EQ(ERR_DH_FWK_PARA_INVALID, onlineResult);
103 
104     ASSERT_EQ(DH_FWK_SUCCESS, TaskBoard::GetInstance().WaitForALLTaskFinish());
105     ASSERT_TRUE(TaskBoard::GetInstance().IsAllTaskFinish());
106 }
107 
108 /**
109  * @tc.name: sendOffLineEvent_test_001
110  * @tc.desc: Verify the SendOffLineEvent success
111  * @tc.type: FUNC
112  * @tc.require: AR000GHSJM
113  */
114 HWTEST_F(DistributedHardwareManagerTest, sendOffLineEvent_test_001, TestSize.Level0)
115 {
116     auto onlineResult = DistributedHardwareManager::GetInstance().SendOnLineEvent(TEST_DEVICES[0].first,
117         TEST_DEVICES[0].second, TEST_DEV_TYPE_PAD);
118     ASSERT_EQ(DH_FWK_SUCCESS, onlineResult);
119 
120     auto offlineResult = DistributedHardwareManager::GetInstance().SendOffLineEvent(TEST_DEVICES[0].first,
121         TEST_DEVICES[0].second, TEST_DEV_TYPE_PAD);
122     ASSERT_EQ(DH_FWK_SUCCESS, offlineResult);
123 
124     ASSERT_EQ(DH_FWK_SUCCESS, TaskBoard::GetInstance().WaitForALLTaskFinish());
125     ASSERT_TRUE(TaskBoard::GetInstance().IsAllTaskFinish());
126 }
127 
128 /**
129  * @tc.name: sendOffLineEvent_test_002
130  * @tc.desc: Verify the SendOffLineEvent repeat
131  * @tc.type: FUNC
132  * @tc.require: AR000GHSJM
133  */
134 HWTEST_F(DistributedHardwareManagerTest, sendOffLineEvent_test_002, TestSize.Level0)
135 {
136     auto onlineResult = DistributedHardwareManager::GetInstance().SendOnLineEvent(TEST_DEVICES[0].first,
137         TEST_DEVICES[0].second, TEST_DEV_TYPE_PAD);
138     ASSERT_EQ(DH_FWK_SUCCESS, onlineResult);
139 
140     auto offlineResult = DistributedHardwareManager::GetInstance().SendOffLineEvent(TEST_DEVICES[0].first,
141         TEST_DEVICES[0].second, TEST_DEV_TYPE_PAD);
142     ASSERT_EQ(DH_FWK_SUCCESS, offlineResult);
143 
144     offlineResult = DistributedHardwareManager::GetInstance().SendOffLineEvent(TEST_DEVICES[0].first,
145         TEST_DEVICES[0].second, TEST_DEV_TYPE_PAD);
146     ASSERT_EQ(DH_FWK_SUCCESS, offlineResult);
147 
148     ASSERT_EQ(DH_FWK_SUCCESS, TaskBoard::GetInstance().WaitForALLTaskFinish());
149     ASSERT_TRUE(TaskBoard::GetInstance().IsAllTaskFinish());
150 }
151 
152 /**
153  * @tc.name: sendOffLineEvent_test_003
154  * @tc.desc: Verify the SendOffLineEvent failed for uuid is empty
155  * @tc.type: FUNC
156  * @tc.require: AR000GHSJM
157  */
158 HWTEST_F(DistributedHardwareManagerTest, sendOffLineEvent_test_003, TestSize.Level0)
159 {
160     auto offlineResult =
161         DistributedHardwareManager::GetInstance().SendOffLineEvent("", "", TEST_DEV_TYPE_PAD);
162     ASSERT_EQ(ERR_DH_FWK_PARA_INVALID, offlineResult);
163 
164     offlineResult =
165         DistributedHardwareManager::GetInstance().SendOffLineEvent(TEST_DEVICES[0].first, "", TEST_DEV_TYPE_PAD);
166     ASSERT_EQ(ERR_DH_FWK_PARA_INVALID, offlineResult);
167 
168     ASSERT_EQ(DH_FWK_SUCCESS, TaskBoard::GetInstance().WaitForALLTaskFinish());
169     ASSERT_TRUE(TaskBoard::GetInstance().IsAllTaskFinish());
170 }
171 
172 /**
173  * @tc.name: Release_001
174  * @tc.desc: Verify the Release function
175  * @tc.type: FUNC
176  * @tc.require: AR000GHSJM
177  */
178 HWTEST_F(DistributedHardwareManagerTest, Release_001, TestSize.Level0)
179 {
180     EXPECT_EQ(DH_FWK_SUCCESS, DistributedHardwareManager::GetInstance().Release());
181 }
182 
183 /**
184  * @tc.name: GetComponentVersion_001
185  * @tc.desc: Verify the GetComponentVersion function
186  * @tc.type: FUNC
187  * @tc.require: AR000GHSJM
188  */
189 HWTEST_F(DistributedHardwareManagerTest, RGetComponentVersion_001, TestSize.Level0)
190 {
191     std::unordered_map<DHType, std::string> versionMap;
192     EXPECT_NE(DH_FWK_SUCCESS, DistributedHardwareManager::GetInstance().GetComponentVersion(versionMap));
193 }
194 } // namespace DistributedHardware
195 } // namespace OHOS
196