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 "component_loader_test.h"
17 #define private public
18 #include "component_loader.h"
19 #undef private
20 #include "versionmanager/version_manager.h"
21
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace DistributedHardware {
26 namespace {
27 std::map<DHType, CompHandler> g_compHandlerMap;
28 }
29
SetUpTestCase(void)30 void ComponentLoaderTest::SetUpTestCase(void) {}
31
TearDownTestCase(void)32 void ComponentLoaderTest::TearDownTestCase(void) {}
33
SetUp()34 void ComponentLoaderTest::SetUp()
35 {
36 ComponentLoader::GetInstance().Init();
37 g_compHandlerMap = ComponentLoader::GetInstance().compHandlerMap_;
38 }
39
TearDown()40 void ComponentLoaderTest::TearDown()
41 {
42 ComponentLoader::GetInstance().UnInit();
43 g_compHandlerMap.clear();
44 }
45
46 /**
47 * @tc.name: component_loader_test_001
48 * @tc.desc: Verify the GetLocalDHVersion function.
49 * @tc.type: FUNC
50 * @tc.require: AR000GHSK3
51 */
52 HWTEST_F(ComponentLoaderTest, component_loader_test_001, TestSize.Level0)
53 {
54 DHVersion dhVersion;
55 auto ret = ComponentLoader::GetInstance().GetLocalDHVersion(dhVersion);
56 EXPECT_EQ(DH_FWK_SUCCESS, ret);
57 }
58
59 /**
60 * @tc.name: component_loader_test_002
61 * @tc.desc: Verify the GetHardwareHandler function.
62 * @tc.type: FUNC
63 * @tc.require: AR000GHSK3
64 */
65 HWTEST_F(ComponentLoaderTest, component_loader_test_002, TestSize.Level0)
66 {
67 for (const auto &iter : g_compHandlerMap) {
68 IHardwareHandler *hardwareHandlerPtr = nullptr;
69 auto ret = ComponentLoader::GetInstance().GetHardwareHandler(iter.first, hardwareHandlerPtr);
70 EXPECT_EQ(DH_FWK_SUCCESS, ret);
71 EXPECT_TRUE(hardwareHandlerPtr != nullptr);
72 }
73 }
74
75 /**
76 * @tc.name: component_loader_test_003
77 * @tc.desc: Verify the GetSource function.
78 * @tc.type: FUNC
79 * @tc.require: AR000GHSK3
80 */
81 HWTEST_F(ComponentLoaderTest, component_loader_test_003, TestSize.Level0)
82 {
83 for (const auto &iter : g_compHandlerMap) {
84 IDistributedHardwareSource *sourcePtr = nullptr;
85 auto ret = ComponentLoader::GetInstance().GetSource(iter.first, sourcePtr);
86 EXPECT_EQ(DH_FWK_SUCCESS, ret);
87 EXPECT_TRUE(sourcePtr != nullptr);
88 }
89 }
90
91 /**
92 * @tc.name: component_loader_test_004
93 * @tc.desc: Verify the GetSink function.
94 * @tc.type: FUNC
95 * @tc.require: AR000GHSK3
96 */
97 HWTEST_F(ComponentLoaderTest, component_loader_test_004, TestSize.Level0)
98 {
99 for (const auto &iter : g_compHandlerMap) {
100 IDistributedHardwareSink *sinkPtr = nullptr;
101 auto ret = ComponentLoader::GetInstance().GetSink(iter.first, sinkPtr);
102 EXPECT_EQ(DH_FWK_SUCCESS, ret);
103 EXPECT_TRUE(sinkPtr != nullptr);
104 }
105 }
106
107 /**
108 * @tc.name: component_loader_test_005
109 * @tc.desc: Verify the ReleaseHardwareHandler function.
110 * @tc.type: FUNC
111 * @tc.require: AR000GHSK3
112 */
113 HWTEST_F(ComponentLoaderTest, component_loader_test_005, TestSize.Level0)
114 {
115 for (const auto &iter : g_compHandlerMap) {
116 auto ret = ComponentLoader::GetInstance().ReleaseHardwareHandler(iter.first);
117 EXPECT_EQ(DH_FWK_SUCCESS, ret);
118 EXPECT_TRUE(ComponentLoader::GetInstance().compHandlerMap_[iter.first].hardwareHandler == nullptr);
119 }
120 }
121
122 /**
123 * @tc.name: component_loader_test_006
124 * @tc.desc: Verify the ReleaseSource function.
125 * @tc.type: FUNC
126 * @tc.require: AR000GHSK3
127 */
128 HWTEST_F(ComponentLoaderTest, component_loader_test_006, TestSize.Level0)
129 {
130 for (const auto &iter : g_compHandlerMap) {
131 auto ret = ComponentLoader::GetInstance().ReleaseSource(iter.first);
132 EXPECT_EQ(DH_FWK_SUCCESS, ret);
133 EXPECT_TRUE(ComponentLoader::GetInstance().compHandlerMap_[iter.first].sourceHandler == nullptr);
134 }
135 }
136
137 /**
138 * @tc.name: component_loader_test_007
139 * @tc.desc: Verify the ReleaseSink function.
140 * @tc.type: FUNC
141 * @tc.require: AR000GHSK3
142 */
143 HWTEST_F(ComponentLoaderTest, component_loader_test_007, TestSize.Level0)
144 {
145 for (const auto &iter : g_compHandlerMap) {
146 auto ret = ComponentLoader::GetInstance().ReleaseSink(iter.first);
147 EXPECT_EQ(DH_FWK_SUCCESS, ret);
148 EXPECT_TRUE(ComponentLoader::GetInstance().compHandlerMap_[iter.first].sinkHandler == nullptr);
149 }
150 }
151
152 /**
153 * @tc.name: component_loader_test_008
154 * @tc.desc: Verify the GetAllCompTypes function.
155 * @tc.type: FUNC
156 * @tc.require: AR000GHSK3
157 */
158 HWTEST_F(ComponentLoaderTest, component_loader_test_008, TestSize.Level0)
159 {
160 auto vec = ComponentLoader::GetInstance().GetAllCompTypes();
161 EXPECT_EQ(vec.size(), ComponentLoader::GetInstance().compHandlerMap_.size());
162 }
163
164 /**
165 * @tc.name: component_loader_test_009
166 * @tc.desc: Verify the GetHandler function.
167 * @tc.type: FUNC
168 * @tc.require: AR000GHSK3
169 */
170 HWTEST_F(ComponentLoaderTest, component_loader_test_009, TestSize.Level0)
171 {
172 std::string soNameEmpty = "";
173 auto handler = ComponentLoader::GetInstance().GetHandler(soNameEmpty);
174 EXPECT_EQ(nullptr, handler);
175 }
176
177 /**
178 * @tc.name: component_loader_test_010
179 * @tc.desc: Verify the GetHandler function.
180 * @tc.type: FUNC
181 * @tc.require: AR000GHSK3
182 */
183 HWTEST_F(ComponentLoaderTest, component_loader_test_010, TestSize.Level0)
184 {
185 std::string soName = "NON_EXISTENT_SO";
186 auto handler = ComponentLoader::GetInstance().GetHandler(soName);
187 EXPECT_EQ(nullptr, handler);
188 }
189
190 /**
191 * @tc.name: component_loader_test_011
192 * @tc.desc: Verify the GetCompPathAndVersion function.
193 * @tc.type: FUNC
194 * @tc.require: AR000GHSK3
195 */
196 HWTEST_F(ComponentLoaderTest, component_loader_test_011, TestSize.Level0)
197 {
198 std::string jsonStr = "";
199 std::map<DHType, CompConfig> dhtypeMap;
200 int32_t ret = ComponentLoader::GetInstance().GetCompPathAndVersion(jsonStr, dhtypeMap);
201 EXPECT_EQ(ERR_DH_FWK_JSON_PARSE_FAILED, ret);
202 }
203
204 /**
205 * @tc.name: component_loader_test_012
206 * @tc.desc: Verify the IsDHTypeExist function.
207 * @tc.type: FUNC
208 * @tc.require: AR000GHSK3
209 */
210 HWTEST_F(ComponentLoaderTest, component_loader_test_012, TestSize.Level0)
211 {
212 bool ret = ComponentLoader::GetInstance().IsDHTypeExist(DHType::CAMERA);
213 EXPECT_EQ(true, ret);
214 }
215
216 /**
217 * @tc.name: component_loader_test_013
218 * @tc.desc: Verify the GetSourceSaId function.
219 * @tc.type: FUNC
220 * @tc.require: AR000GHSK3
221 */
222 HWTEST_F(ComponentLoaderTest, component_loader_test_013, TestSize.Level0)
223 {
224 const int32_t INVALID_SA_ID = -1;
225 int32_t ret = ComponentLoader::GetInstance().GetSourceSaId(DHType::UNKNOWN);
226 EXPECT_EQ(INVALID_SA_ID, ret);
227 }
228 } // namespace DistributedHardware
229 } // namespace OHOS
230