• 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 "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