• 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 
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 const std::string DH_LOCAL_VERSION = "1.0";
58 }
59 
60 /**
61  * @tc.name: version_manager_test_001
62  * @tc.desc: Verify the Init function.
63  * @tc.type: FUNC
64  * @tc.require: AR000GHSKN
65  */
66 HWTEST_F(VersionManagerTest, version_manager_test_001, TestSize.Level1)
67 {
68     auto ret = VersionManager::GetInstance().Init();
69     EXPECT_EQ(DH_FWK_SUCCESS, ret);
70 }
71 
CompVersionGetValue(CompVersion & cVs,std::string name,DHType dhType,std::string handlerVersion,std::string sourceVersion,std::string sinkVersion)72 void CompVersionGetValue(CompVersion &cVs, std::string name, DHType dhType, std::string handlerVersion,
73     std::string sourceVersion, std::string sinkVersion)
74 {
75     cVs.name = name;
76     cVs.dhType = dhType;
77     cVs.handlerVersion = handlerVersion;
78     cVs.sourceVersion = sourceVersion;
79     cVs.sinkVersion = sinkVersion;
80 }
81 
82 /**
83  * @tc.name: version_manager_test_002
84  * @tc.desc: Verify AddDHVersion function
85  * @tc.type: FUNC
86  * @tc.require: AR000GHSKN
87  */
88 HWTEST_F(VersionManagerTest, version_manager_test_002, TestSize.Level1)
89 {
90     DHVersion dhVersion;
91     CompVersion cVs1;
92     CompVersionGetValue(cVs1, TEST_COMPONENT_NAME_1, DHType::CAMERA, TEST_HANDLER_VERSION_1, TEST_SOURCE_VERSION_1,
93         TEST_SINK_VERSION_1);
94     CompVersion cVs2;
95     CompVersionGetValue(cVs2, TEST_COMPONENT_NAME_2, DHType::AUDIO, TEST_HANDLER_VERSION_2, TEST_SOURCE_VERSION_2,
96         TEST_SINK_VERSION_2);
97     CompVersion cVs3;
98     CompVersionGetValue(cVs3, TEST_COMPONENT_NAME_3, DHType::SCREEN, TEST_HANDLER_VERSION_3, TEST_SOURCE_VERSION_3,
99         TEST_SINK_VERSION_3);
100     dhVersion.uuid = TEST_DEVICE_ID_1;
101     dhVersion.dhVersion = TEST_DH_VERSION;
102     dhVersion.compVersions.insert(std::make_pair(cVs1.dhType, cVs1));
103     dhVersion.compVersions.insert(std::make_pair(cVs2.dhType, cVs2));
104     dhVersion.compVersions.insert(std::make_pair(cVs3.dhType, cVs3));
105     int32_t ret = VersionManager::GetInstance().AddDHVersion(dhVersion.uuid, dhVersion);
106     EXPECT_EQ(DH_FWK_SUCCESS, ret);
107     dhVersion.uuid = TEST_DEVICE_ID_2;
108     ret = VersionManager::GetInstance().AddDHVersion(dhVersion.uuid, dhVersion);
109     EXPECT_EQ(DH_FWK_SUCCESS, ret);
110 }
111 
112 /**
113  * @tc.name: version_manager_test_003
114  * @tc.desc: Verify GetLocalDeviceVersion function
115  * @tc.type: FUNC
116  * @tc.require: AR000GHSKN
117  */
118 HWTEST_F(VersionManagerTest, version_manager_test_003, TestSize.Level1)
119 {
120     std::string strVersion = VersionManager::GetInstance().GetLocalDeviceVersion();
121     EXPECT_EQ(DH_LOCAL_VERSION, strVersion);
122 }
123 
124 /**
125  * @tc.name: version_manager_test_004
126  * @tc.desc: Verify GetDHVersion function
127  * @tc.type: FUNC
128  * @tc.require: AR000GHSKN
129  */
130 HWTEST_F(VersionManagerTest, version_manager_test_004, TestSize.Level1)
131 {
132     DHVersion dhVersion;
133     int32_t ret = VersionManager::GetInstance().GetDHVersion(TEST_DEVICE_ID_2, dhVersion);
134     EXPECT_EQ(DH_FWK_SUCCESS, ret);
135     EXPECT_EQ(TEST_HANDLER_VERSION_2, dhVersion.compVersions[DHType::AUDIO].handlerVersion);
136     EXPECT_EQ(TEST_DH_VERSION, dhVersion.dhVersion);
137     ret = VersionManager::GetInstance().GetDHVersion(TEST_DEVICE_ID_3, dhVersion);
138     EXPECT_EQ(ERR_DH_FWK_VERSION_DEVICE_ID_NOT_EXIST, ret);
139 }
140 
141 /**
142  * @tc.name: version_manager_test_005
143  * @tc.desc: Verify RemoveDHVersion function
144  * @tc.type: FUNC
145  * @tc.require: AR000GHSKN
146  */
147 HWTEST_F(VersionManagerTest, version_manager_test_005, TestSize.Level1)
148 {
149     int32_t ret = VersionManager::GetInstance().RemoveDHVersion(TEST_DEVICE_ID_2);
150     EXPECT_EQ(DH_FWK_SUCCESS, ret);
151     ret = VersionManager::GetInstance().RemoveDHVersion(TEST_DEVICE_ID_4);
152     EXPECT_EQ(ERR_DH_FWK_VERSION_DEVICE_ID_NOT_EXIST, ret);
153     ret = VersionManager::GetInstance().RemoveDHVersion(TEST_DEVICE_ID_2);
154     EXPECT_EQ(ERR_DH_FWK_VERSION_DEVICE_ID_NOT_EXIST, ret);
155     ret = VersionManager::GetInstance().RemoveDHVersion(TEST_DEVICE_ID_1);
156     EXPECT_EQ(DH_FWK_SUCCESS, ret);
157 }
158 
159 /**
160  * @tc.name: version_manager_test_006
161  * @tc.desc: Verify GetCompVersion function
162  * @tc.type: FUNC
163  * @tc.require: AR000GHSKN
164  */
165 HWTEST_F(VersionManagerTest, version_manager_test_006, TestSize.Level1)
166 {
167     DHVersion dhVersion;
168     CompVersion cVs1;
169     CompVersionGetValue(cVs1, TEST_COMPONENT_NAME_1, DHType::CAMERA, TEST_HANDLER_VERSION_1, TEST_SOURCE_VERSION_1,
170         TEST_SINK_VERSION_1);
171     dhVersion.uuid = TEST_DEVICE_ID_1;
172     dhVersion.dhVersion = TEST_DH_VERSION;
173     dhVersion.compVersions.insert(std::make_pair(cVs1.dhType, cVs1));
174     int32_t ret = VersionManager::GetInstance().AddDHVersion(dhVersion.uuid, dhVersion);
175     EXPECT_EQ(DH_FWK_SUCCESS, ret);
176     ret = VersionManager::GetInstance().GetCompVersion(TEST_DEVICE_ID_1, DHType::CAMERA, cVs1);
177     EXPECT_EQ(DH_FWK_SUCCESS, ret);
178 }
179 
180 /**
181  * @tc.name: version_manager_test_007
182  * @tc.desc: Verify GetCompVersion function
183  * @tc.type: FUNC
184  * @tc.require: AR000GHSKN
185  */
186 HWTEST_F(VersionManagerTest, version_manager_test_007, TestSize.Level1)
187 {
188     DHVersion dhVersion;
189     CompVersion cVs1;
190     CompVersionGetValue(cVs1, TEST_COMPONENT_NAME_1, DHType::CAMERA, TEST_HANDLER_VERSION_1, TEST_SOURCE_VERSION_1,
191         TEST_SINK_VERSION_1);
192     dhVersion.uuid = TEST_DEVICE_ID_1;
193     dhVersion.dhVersion = TEST_DH_VERSION;
194     dhVersion.compVersions.insert(std::make_pair(cVs1.dhType, cVs1));
195     int32_t ret = VersionManager::GetInstance().AddDHVersion(dhVersion.uuid, dhVersion);
196     EXPECT_EQ(DH_FWK_SUCCESS, ret);
197     ret = VersionManager::GetInstance().GetCompVersion(TEST_DEVICE_ID_1, DHType::AUDIO, cVs1);
198     EXPECT_EQ(ERR_DH_FWK_TYPE_NOT_EXIST, ret);
199 }
200 
201 /**
202  * @tc.name: version_manager_test_008
203  * @tc.desc: Verify the Init function.
204  * @tc.type: FUNC
205  * @tc.require: AR000GHSKN
206  */
207 HWTEST_F(VersionManagerTest, version_manager_test_008, TestSize.Level1)
208 {
209     ComponentLoader::GetInstance().isLocalVersionInit_.store(false);
210     int32_t ret = VersionManager::GetInstance().Init();
211     EXPECT_EQ(ERR_DH_FWK_LOADER_GET_LOCAL_VERSION_FAIL, ret);
212 }
213 } // namespace DistributedHardware
214 } // namespace OHOS
215