1 /*
2 * Copyright (c) 2022-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 "version_manager_test.h"
17
18 #include "component_loader.h"
19 #include "version_manager.h"
20
21 using namespace testing::ext;
22
23 namespace OHOS {
24 namespace DistributedHardware {
SetUpTestCase(void)25 void VersionManagerTest::SetUpTestCase(void) {}
26
TearDownTestCase(void)27 void VersionManagerTest::TearDownTestCase(void) {}
28
SetUp()29 void VersionManagerTest::SetUp()
30 {
31 ComponentLoader::GetInstance().Init();
32 }
33
TearDown()34 void VersionManagerTest::TearDown()
35 {
36 ComponentLoader::GetInstance().UnInit();
37 }
38
39 namespace {
40 const std::string TEST_DEVICE_ID_1 = "bb536a637105409e904d4da83790a4a7";
41 const std::string TEST_DEVICE_ID_2 = "bb536a637105409e904d4da83790a4a8";
42 const std::string TEST_DEVICE_ID_3 = "bb536a637105409e904d4da83790a4a9";
43 const std::string TEST_DEVICE_ID_4 = "bb536a637105409e904d4da83790a4a0";
44 const std::string TEST_HANDLER_VERSION_1 = "1.0";
45 const std::string TEST_HANDLER_VERSION_2 = "3.0";
46 const std::string TEST_HANDLER_VERSION_3 = "5.0";
47 const std::string TEST_SOURCE_VERSION_1 = "2.2";
48 const std::string TEST_SOURCE_VERSION_2 = "2.0";
49 const std::string TEST_SOURCE_VERSION_3 = "6.0";
50 const std::string TEST_SINK_VERSION_1 = "2.4";
51 const std::string TEST_SINK_VERSION_2 = "2.0";
52 const std::string TEST_SINK_VERSION_3 = "2.0";
53 const std::string TEST_DH_VERSION = "3.1";
54 const std::string TEST_COMPONENT_NAME_1 = "distributed_camera";
55 const std::string TEST_COMPONENT_NAME_2 = "distributed_audio";
56 const std::string TEST_COMPONENT_NAME_3 = "distributed_mic";
57 }
58
59 /**
60 * @tc.name: version_manager_test_001
61 * @tc.desc: Verify the Init function.
62 * @tc.type: FUNC
63 * @tc.require: AR000GHSKN
64 */
65 HWTEST_F(VersionManagerTest, version_manager_test_001, TestSize.Level0)
66 {
67 auto ret = VersionManager::GetInstance().Init();
68 EXPECT_EQ(DH_FWK_SUCCESS, ret);
69 }
70
CompVersionGetValue(CompVersion & cVs,std::string name,DHType dhType,std::string handlerVersion,std::string sourceVersion,std::string sinkVersion)71 void CompVersionGetValue(CompVersion &cVs, std::string name, DHType dhType, std::string handlerVersion,
72 std::string sourceVersion, std::string sinkVersion)
73 {
74 cVs.name = name;
75 cVs.dhType = dhType;
76 cVs.handlerVersion = handlerVersion;
77 cVs.sourceVersion = sourceVersion;
78 cVs.sinkVersion = sinkVersion;
79 }
80
81 /**
82 * @tc.name: version_manager_test_002
83 * @tc.desc: Verify AddDHVersion function
84 * @tc.type: FUNC
85 * @tc.require: AR000GHSKN
86 */
87 HWTEST_F(VersionManagerTest, version_manager_test_002, TestSize.Level0)
88 {
89 DHVersion dhVersion;
90 CompVersion cVs1;
91 CompVersionGetValue(cVs1, TEST_COMPONENT_NAME_1, DHType::CAMERA, TEST_HANDLER_VERSION_1, TEST_SOURCE_VERSION_1,
92 TEST_SINK_VERSION_1);
93 CompVersion cVs2;
94 CompVersionGetValue(cVs2, TEST_COMPONENT_NAME_2, DHType::AUDIO, TEST_HANDLER_VERSION_2, TEST_SOURCE_VERSION_2,
95 TEST_SINK_VERSION_2);
96 CompVersion cVs3;
97 CompVersionGetValue(cVs3, TEST_COMPONENT_NAME_3, DHType::SCREEN, TEST_HANDLER_VERSION_3, TEST_SOURCE_VERSION_3,
98 TEST_SINK_VERSION_3);
99 dhVersion.uuid = TEST_DEVICE_ID_1;
100 dhVersion.dhVersion = TEST_DH_VERSION;
101 dhVersion.compVersions.insert(std::make_pair(cVs1.dhType, cVs1));
102 dhVersion.compVersions.insert(std::make_pair(cVs2.dhType, cVs2));
103 dhVersion.compVersions.insert(std::make_pair(cVs3.dhType, cVs3));
104 int32_t ret = VersionManager::GetInstance().AddDHVersion(dhVersion.uuid, dhVersion);
105 EXPECT_EQ(DH_FWK_SUCCESS, ret);
106 dhVersion.uuid = TEST_DEVICE_ID_2;
107 ret = VersionManager::GetInstance().AddDHVersion(dhVersion.uuid, dhVersion);
108 EXPECT_EQ(DH_FWK_SUCCESS, ret);
109 }
110
111 /**
112 * @tc.name: version_manager_test_003
113 * @tc.desc: Verify GetLocalDeviceVersion function
114 * @tc.type: FUNC
115 * @tc.require: AR000GHSKN
116 */
117 HWTEST_F(VersionManagerTest, version_manager_test_003, TestSize.Level0)
118 {
119 std::string strVersion = VersionManager::GetInstance().GetLocalDeviceVersion();
120 EXPECT_EQ(DH_LOCAL_VERSION, strVersion);
121 }
122
123 /**
124 * @tc.name: version_manager_test_004
125 * @tc.desc: Verify GetDHVersion function
126 * @tc.type: FUNC
127 * @tc.require: AR000GHSKN
128 */
129 HWTEST_F(VersionManagerTest, version_manager_test_004, TestSize.Level0)
130 {
131 DHVersion dhVersion;
132 int32_t ret = VersionManager::GetInstance().GetDHVersion(TEST_DEVICE_ID_2, dhVersion);
133 EXPECT_EQ(DH_FWK_SUCCESS, ret);
134 EXPECT_EQ(TEST_HANDLER_VERSION_2, dhVersion.compVersions[DHType::AUDIO].handlerVersion);
135 EXPECT_EQ(TEST_DH_VERSION, dhVersion.dhVersion);
136 ret = VersionManager::GetInstance().GetDHVersion(TEST_DEVICE_ID_3, dhVersion);
137 EXPECT_EQ(ERR_DH_FWK_VERSION_DEVICE_ID_NOT_EXIST, ret);
138 }
139
140 /**
141 * @tc.name: version_manager_test_005
142 * @tc.desc: Verify RemoveDHVersion function
143 * @tc.type: FUNC
144 * @tc.require: AR000GHSKN
145 */
146 HWTEST_F(VersionManagerTest, version_manager_test_005, TestSize.Level0)
147 {
148 int32_t ret = VersionManager::GetInstance().RemoveDHVersion(TEST_DEVICE_ID_2);
149 EXPECT_EQ(DH_FWK_SUCCESS, ret);
150 ret = VersionManager::GetInstance().RemoveDHVersion(TEST_DEVICE_ID_4);
151 EXPECT_EQ(ERR_DH_FWK_VERSION_DEVICE_ID_NOT_EXIST, ret);
152 ret = VersionManager::GetInstance().RemoveDHVersion(TEST_DEVICE_ID_2);
153 EXPECT_EQ(ERR_DH_FWK_VERSION_DEVICE_ID_NOT_EXIST, ret);
154 ret = VersionManager::GetInstance().RemoveDHVersion(TEST_DEVICE_ID_1);
155 EXPECT_EQ(DH_FWK_SUCCESS, ret);
156 }
157
158 /**
159 * @tc.name: version_manager_test_006
160 * @tc.desc: Verify GetCompVersion function
161 * @tc.type: FUNC
162 * @tc.require: AR000GHSKN
163 */
164 HWTEST_F(VersionManagerTest, version_manager_test_006, TestSize.Level0)
165 {
166 DHVersion dhVersion;
167 CompVersion cVs1;
168 CompVersionGetValue(cVs1, TEST_COMPONENT_NAME_1, DHType::CAMERA, TEST_HANDLER_VERSION_1, TEST_SOURCE_VERSION_1,
169 TEST_SINK_VERSION_1);
170 dhVersion.uuid = TEST_DEVICE_ID_1;
171 dhVersion.dhVersion = TEST_DH_VERSION;
172 dhVersion.compVersions.insert(std::make_pair(cVs1.dhType, cVs1));
173 int32_t ret = VersionManager::GetInstance().AddDHVersion(dhVersion.uuid, dhVersion);
174 EXPECT_EQ(DH_FWK_SUCCESS, ret);
175 ret = VersionManager::GetInstance().GetCompVersion(TEST_DEVICE_ID_1, DHType::CAMERA, cVs1);
176 EXPECT_EQ(DH_FWK_SUCCESS, ret);
177 }
178
179 /**
180 * @tc.name: version_manager_test_007
181 * @tc.desc: Verify GetCompVersion function
182 * @tc.type: FUNC
183 * @tc.require: AR000GHSKN
184 */
185 HWTEST_F(VersionManagerTest, version_manager_test_007, TestSize.Level0)
186 {
187 DHVersion dhVersion;
188 CompVersion cVs1;
189 CompVersionGetValue(cVs1, TEST_COMPONENT_NAME_1, DHType::CAMERA, TEST_HANDLER_VERSION_1, TEST_SOURCE_VERSION_1,
190 TEST_SINK_VERSION_1);
191 dhVersion.uuid = TEST_DEVICE_ID_1;
192 dhVersion.dhVersion = TEST_DH_VERSION;
193 dhVersion.compVersions.insert(std::make_pair(cVs1.dhType, cVs1));
194 int32_t ret = VersionManager::GetInstance().AddDHVersion(dhVersion.uuid, dhVersion);
195 EXPECT_EQ(DH_FWK_SUCCESS, ret);
196 ret = VersionManager::GetInstance().GetCompVersion(TEST_DEVICE_ID_1, DHType::AUDIO, cVs1);
197 EXPECT_EQ(ERR_DH_FWK_TYPE_NOT_EXIST, ret);
198 }
199
200 /**
201 * @tc.name: version_manager_test_008
202 * @tc.desc: Verify the Init function.
203 * @tc.type: FUNC
204 * @tc.require: AR000GHSKN
205 */
206 HWTEST_F(VersionManagerTest, version_manager_test_008, TestSize.Level0)
207 {
208 ComponentLoader::GetInstance().isLocalVersionInit_.store(false);
209 int32_t ret = VersionManager::GetInstance().Init();
210 EXPECT_EQ(ERR_DH_FWK_LOADER_GET_LOCAL_VERSION_FAIL, ret);
211 }
212 } // namespace DistributedHardware
213 } // namespace OHOS
214