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 "resource_manager_test.h"
17
18 #include <cerrno>
19 #include <sys/stat.h>
20 #include <sys/types.h>
21 #include <vector>
22
23 #include "capability_info.h"
24 #define private public
25 #include "capability_info_manager.h"
26 #undef private
27 #include "dh_context.h"
28 #include "distributed_hardware_errno.h"
29 #include "distributed_hardware_log.h"
30
31 using namespace testing::ext;
32 using namespace std;
33
34 namespace OHOS {
35 namespace DistributedHardware {
36 #undef DH_LOG_TAG
37 #define DH_LOG_TAG "ResourceManagerTest"
38
39 namespace {
40 const string DATABASE_DIR = "/data/service/el1/public/database/dtbhardware_manager_service/";
41 const string DEV_ID_0 = "bb536a637105409e904d4da83790a4a7";
42 const string DEV_ID_1 = "bb536a637105409e904d4da83790a4a8";
43 const string DEV_NAME = "Dev1";
44 const string DH_ID_0 = "Camera_0";
45 const string DH_ID_1 = "Mic_0";
46 const string DH_ID_2 = "Gps_0";
47 const string DH_ID_3 = "Display_0";
48 const string DH_ID_4 = "Input_0";
49 const string DH_ATTR_0 = "attr0";
50 const string DH_ATTR_1 = "attr1";
51 constexpr uint16_t TEST_DEV_TYPE_PAD = 0x11;
52 constexpr uint32_t TEST_DH_TYPE_CAMERA = 0x01;
53 constexpr uint32_t TEST_DH_TYPE_MIC = 0x02;
54 constexpr uint32_t TEST_DH_TYPE_GPS = 0x10;
55 constexpr uint32_t TEST_DH_TYPE_DISPLAY = 0x08;
56 constexpr uint32_t TEST_DH_TYPE_BUTTON = 0x20;
57 constexpr uint32_t TEST_SIZE_0 = 0;
58 constexpr uint32_t TEST_SIZE_2 = 2;
59 constexpr uint32_t TEST_SIZE_5 = 5;
60 constexpr uint32_t TEST_SIZE_10 = 10;
61 const std::string EMPTY_PREFIX = "";
62
63 const shared_ptr<CapabilityInfo> CAP_INFO_0 =
64 make_shared<CapabilityInfo>(DH_ID_0, DEV_ID_0, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::CAMERA, DH_ATTR_0);
65 const shared_ptr<CapabilityInfo> CAP_INFO_1 =
66 make_shared<CapabilityInfo>(DH_ID_1, DEV_ID_0, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::AUDIO, DH_ATTR_0);
67 const shared_ptr<CapabilityInfo> CAP_INFO_2 =
68 make_shared<CapabilityInfo>(DH_ID_2, DEV_ID_0, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::GPS, DH_ATTR_0);
69 const shared_ptr<CapabilityInfo> CAP_INFO_3 =
70 make_shared<CapabilityInfo>(DH_ID_3, DEV_ID_0, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::SCREEN, DH_ATTR_0);
71 const shared_ptr<CapabilityInfo> CAP_INFO_4 =
72 make_shared<CapabilityInfo>(DH_ID_4, DEV_ID_0, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::INPUT, DH_ATTR_0);
73
74 const shared_ptr<CapabilityInfo> CAP_INFO_5 =
75 make_shared<CapabilityInfo>(DH_ID_0, DEV_ID_1, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::CAMERA, DH_ATTR_1);
76 const shared_ptr<CapabilityInfo> CAP_INFO_6 =
77 make_shared<CapabilityInfo>(DH_ID_1, DEV_ID_1, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::AUDIO, DH_ATTR_1);
78 const shared_ptr<CapabilityInfo> CAP_INFO_7 =
79 make_shared<CapabilityInfo>(DH_ID_2, DEV_ID_1, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::GPS, DH_ATTR_1);
80 const shared_ptr<CapabilityInfo> CAP_INFO_8 =
81 make_shared<CapabilityInfo>(DH_ID_3, DEV_ID_1, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::SCREEN, DH_ATTR_1);
82 const shared_ptr<CapabilityInfo> CAP_INFO_9 =
83 make_shared<CapabilityInfo>(DH_ID_4, DEV_ID_1, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::INPUT, DH_ATTR_1);
84 }
85
SetUpTestCase(void)86 void ResourceManagerTest::SetUpTestCase(void)
87 {
88 auto ret = mkdir(DATABASE_DIR.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
89 if (ret != 0) {
90 DHLOGE("mkdir failed, path: %s, errno : %d", DATABASE_DIR.c_str(), errno);
91 }
92 }
93
TearDownTestCase(void)94 void ResourceManagerTest::TearDownTestCase(void)
95 {
96 auto ret = remove(DATABASE_DIR.c_str());
97 if (ret != 0) {
98 DHLOGE("remove dir failed, path: %s, errno : %d", DATABASE_DIR.c_str(), errno);
99 }
100 }
101
SetUp()102 void ResourceManagerTest::SetUp()
103 {
104 vector<shared_ptr<CapabilityInfo>> resInfos { CAP_INFO_0, CAP_INFO_1, CAP_INFO_2, CAP_INFO_3, CAP_INFO_4,
105 CAP_INFO_5, CAP_INFO_6, CAP_INFO_7, CAP_INFO_8, CAP_INFO_9 };
106 CapabilityInfoManager::GetInstance()->AddCapability(resInfos);
107 }
108
TearDown()109 void ResourceManagerTest::TearDown()
110 {
111 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_0->GetKey());
112 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_1->GetKey());
113 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_2->GetKey());
114 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_3->GetKey());
115 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_4->GetKey());
116 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_5->GetKey());
117 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_6->GetKey());
118 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_7->GetKey());
119 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_8->GetKey());
120 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_9->GetKey());
121 }
122
123 /**
124 * @tc.name: resource_manager_test_001
125 * @tc.desc: Verify the CapabilityInfoManager UnInit function.
126 * @tc.type: FUNC
127 * @tc.require: AR000GHSJE
128 */
129 HWTEST_F(ResourceManagerTest, resource_manager_test_001, TestSize.Level0)
130 {
131 EXPECT_EQ(CapabilityInfoManager::GetInstance()->Init(), DH_FWK_SUCCESS);
132 EXPECT_EQ(CapabilityInfoManager::GetInstance()->UnInit(), DH_FWK_SUCCESS);
133 }
134
135 /**
136 * @tc.name: resource_manager_test_002
137 * @tc.desc: Verify the CapabilityInfoManager Init function.
138 * @tc.type: FUNC
139 * @tc.require: AR000GHSCV
140 */
141 HWTEST_F(ResourceManagerTest, resource_manager_test_002, TestSize.Level0)
142 {
143 EXPECT_EQ(CapabilityInfoManager::GetInstance()->Init(), DH_FWK_SUCCESS);
144 }
145
146 /**
147 * @tc.name: resource_manager_test_003
148 * @tc.desc: Verify the CapabilityInfoManager SyncDeviceInfoFromDB function.
149 * @tc.type: FUNC
150 * @tc.require: AR000GHSJE
151 */
152 HWTEST_F(ResourceManagerTest, resource_manager_test_003, TestSize.Level0)
153 {
154 CapabilityInfoManager::GetInstance()->globalCapInfoMap_.clear();
155 EXPECT_EQ(CapabilityInfoManager::GetInstance()->SyncDeviceInfoFromDB(DEV_ID_0), DH_FWK_SUCCESS);
156 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_5);
157 EXPECT_EQ(CapabilityInfoManager::GetInstance()->SyncDeviceInfoFromDB(DEV_ID_1), DH_FWK_SUCCESS);
158 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_10);
159 }
160
161 /**
162 * @tc.name: resource_manager_test_004
163 * @tc.desc: Verify the CapabilityInfoManager SyncRemoteCapabilityInfos function.
164 * @tc.type: FUNC
165 * @tc.require: AR000GHSJE
166 */
167 HWTEST_F(ResourceManagerTest, resource_manager_test_004, TestSize.Level0)
168 {
169 CapabilityInfoManager::GetInstance()->globalCapInfoMap_.clear();
170 EXPECT_EQ(CapabilityInfoManager::GetInstance()->SyncRemoteCapabilityInfos(), DH_FWK_SUCCESS);
171 }
172
173 /**
174 * @tc.name: resource_manager_test_005
175 * @tc.desc: Verify the CapabilityInfoManager AddCapability function.
176 * @tc.type: FUNC
177 * @tc.require: AR000GHSCV
178 */
179 HWTEST_F(ResourceManagerTest, resource_manager_test_005, TestSize.Level0)
180 {
181 vector<shared_ptr<CapabilityInfo>> resInfos { CAP_INFO_0, CAP_INFO_1, CAP_INFO_2, CAP_INFO_3, CAP_INFO_4,
182 CAP_INFO_5, CAP_INFO_6, CAP_INFO_7, CAP_INFO_8, CAP_INFO_9 };
183 EXPECT_EQ(CapabilityInfoManager::GetInstance()->AddCapability(resInfos), DH_FWK_SUCCESS);
184 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_10);
185 }
186
187 /**
188 * @tc.name: resource_manager_test_006
189 * @tc.desc: Verify the CapabilityInfoManager AddCapabilityInMem function.
190 * @tc.type: FUNC
191 * @tc.require: AR000GHSCV
192 */
193 HWTEST_F(ResourceManagerTest, resource_manager_test_006, TestSize.Level0)
194 {
195 vector<shared_ptr<CapabilityInfo>> resInfos { CAP_INFO_0, CAP_INFO_1, CAP_INFO_2, CAP_INFO_3, CAP_INFO_4,
196 CAP_INFO_5, CAP_INFO_6, CAP_INFO_7, CAP_INFO_8, CAP_INFO_9 };
197 EXPECT_EQ(CapabilityInfoManager::GetInstance()->AddCapabilityInMem(resInfos), DH_FWK_SUCCESS);
198 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_10);
199 }
200
201
202 /**
203 * @tc.name: resource_manager_test_007
204 * @tc.desc: Verify the CapabilityInfoManager RemoveCapabilityInfoByKey function.
205 * @tc.type: FUNC
206 * @tc.require: AR000GHSJE
207 */
208 HWTEST_F(ResourceManagerTest, resource_manager_test_007, TestSize.Level0)
209 {
210 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_0->GetKey()), DH_FWK_SUCCESS);
211 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_1->GetKey()), DH_FWK_SUCCESS);
212 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_2->GetKey()), DH_FWK_SUCCESS);
213 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_3->GetKey()), DH_FWK_SUCCESS);
214 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_4->GetKey()), DH_FWK_SUCCESS);
215 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_5->GetKey()), DH_FWK_SUCCESS);
216 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_6->GetKey()), DH_FWK_SUCCESS);
217 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_7->GetKey()), DH_FWK_SUCCESS);
218 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_8->GetKey()), DH_FWK_SUCCESS);
219 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_9->GetKey()), DH_FWK_SUCCESS);
220 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_0);
221 }
222
223 /**
224 * @tc.name: resource_manager_test_008
225 * @tc.desc: Verify the CapabilityInfoManager QueryCapabilityByFilters function.
226 * @tc.type: FUNC
227 * @tc.require: AR000GHSJE
228 */
229 HWTEST_F(ResourceManagerTest, resource_manager_test_008, TestSize.Level0)
230 {
231 map<CapabilityInfoFilter, string> queryMap0 { { CapabilityInfoFilter::FILTER_DEVICE_ID, DEV_ID_0 } };
232 map<CapabilityInfoFilter, string> queryMap1 { { CapabilityInfoFilter::FILTER_DEVICE_ID, DEV_ID_1 } };
233 map<CapabilityInfoFilter, string> queryMap2 { { CapabilityInfoFilter::FILTER_DEVICE_NAME, DEV_NAME } };
234 map<CapabilityInfoFilter, string> queryMap3 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_0 } };
235 map<CapabilityInfoFilter, string> queryMap4 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_1 } };
236 map<CapabilityInfoFilter, string> queryMap5 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_2 } };
237 map<CapabilityInfoFilter, string> queryMap6 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_3 } };
238 map<CapabilityInfoFilter, string> queryMap7 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_4 } };
239 map<CapabilityInfoFilter, string> queryMap8 { { CapabilityInfoFilter::FILTER_DEVICE_TYPE,
240 to_string(TEST_DEV_TYPE_PAD) } };
241 map<CapabilityInfoFilter, string> queryMap9 { { CapabilityInfoFilter::FILTER_DH_TYPE,
242 to_string(TEST_DH_TYPE_CAMERA) } };
243 map<CapabilityInfoFilter, string> queryMap10 { { CapabilityInfoFilter::FILTER_DH_TYPE,
244 to_string(TEST_DH_TYPE_MIC) } };
245 map<CapabilityInfoFilter, string> queryMap11 { { CapabilityInfoFilter::FILTER_DH_TYPE,
246 to_string(TEST_DH_TYPE_GPS) } };
247 map<CapabilityInfoFilter, string> queryMap12 { { CapabilityInfoFilter::FILTER_DH_TYPE,
248 to_string(TEST_DH_TYPE_DISPLAY) } };
249 map<CapabilityInfoFilter, string> queryMap13 { { CapabilityInfoFilter::FILTER_DH_TYPE,
250 to_string(TEST_DH_TYPE_BUTTON) } };
251 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap0).size(), TEST_SIZE_5);
252 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap1).size(), TEST_SIZE_5);
253 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap2).size(), TEST_SIZE_10);
254 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap3).size(), TEST_SIZE_2);
255 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap4).size(), TEST_SIZE_2);
256 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap5).size(), TEST_SIZE_2);
257 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap6).size(), TEST_SIZE_2);
258 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap7).size(), TEST_SIZE_2);
259 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap8).size(), TEST_SIZE_10);
260 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap9).size(), TEST_SIZE_2);
261 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap10).size(), TEST_SIZE_2);
262 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap11).size(), TEST_SIZE_2);
263 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap12).size(), TEST_SIZE_2);
264 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap13).size(), TEST_SIZE_2);
265 }
266
267 /**
268 * @tc.name: resource_manager_test_009
269 * @tc.desc: Verify the HasCapability function.
270 * @tc.type: FUNC
271 * @tc.require: AR000GHSCV
272 */
273 HWTEST_F(ResourceManagerTest, resource_manager_test_009, TestSize.Level0)
274 {
275 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_0), true);
276 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_1), true);
277 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_2), true);
278 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_3), true);
279 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_4), true);
280 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_0), true);
281 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_1), true);
282 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_2), true);
283 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_3), true);
284 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_4), true);
285 }
286
287 /**
288 * @tc.name: resource_manager_test_010
289 * @tc.desc: Verify the GetCapabilitiesByDeviceId function.
290 * @tc.type: FUNC
291 * @tc.require: AR000GHSJE
292 */
293 HWTEST_F(ResourceManagerTest, resource_manager_test_010, TestSize.Level0)
294 {
295 vector<shared_ptr<CapabilityInfo>> capInfos;
296 CapabilityInfoManager::GetInstance()->GetCapabilitiesByDeviceId(DEV_ID_0, capInfos);
297 EXPECT_EQ(capInfos.size(), TEST_SIZE_5);
298 CapabilityInfoManager::GetInstance()->GetCapabilitiesByDeviceId(DEV_ID_1, capInfos);
299 EXPECT_EQ(capInfos.size(), TEST_SIZE_10);
300 }
301
302 /**
303 * @tc.name: resource_manager_test_011
304 * @tc.desc: Verify the GetCapability function.
305 * @tc.type: FUNC
306 * @tc.require: AR000GHSJE
307 */
308 HWTEST_F(ResourceManagerTest, resource_manager_test_011, TestSize.Level0)
309 {
310 shared_ptr<CapabilityInfo> capInfo;
311 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_0, capInfo), DH_FWK_SUCCESS);
312 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_1, capInfo), DH_FWK_SUCCESS);
313 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_2, capInfo), DH_FWK_SUCCESS);
314 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_3, capInfo), DH_FWK_SUCCESS);
315 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_4, capInfo), DH_FWK_SUCCESS);
316 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_0, capInfo), DH_FWK_SUCCESS);
317 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_1, capInfo), DH_FWK_SUCCESS);
318 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_2, capInfo), DH_FWK_SUCCESS);
319 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_3, capInfo), DH_FWK_SUCCESS);
320 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_4, capInfo), DH_FWK_SUCCESS);
321 }
322
323 /**
324 * @tc.name: resource_manager_test_012
325 * @tc.desc: Verify the GetDataByKey function.
326 * @tc.type: FUNC
327 * @tc.require: AR000GHSJE
328 */
329 HWTEST_F(ResourceManagerTest, resource_manager_test_012, TestSize.Level0)
330 {
331 shared_ptr<CapabilityInfo> capInfo;
332 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_0->GetKey(), capInfo), DH_FWK_SUCCESS);
333 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_1->GetKey(), capInfo), DH_FWK_SUCCESS);
334 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_2->GetKey(), capInfo), DH_FWK_SUCCESS);
335 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_3->GetKey(), capInfo), DH_FWK_SUCCESS);
336 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_4->GetKey(), capInfo), DH_FWK_SUCCESS);
337 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_5->GetKey(), capInfo), DH_FWK_SUCCESS);
338 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_6->GetKey(), capInfo), DH_FWK_SUCCESS);
339 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_7->GetKey(), capInfo), DH_FWK_SUCCESS);
340 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_8->GetKey(), capInfo), DH_FWK_SUCCESS);
341 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_9->GetKey(), capInfo), DH_FWK_SUCCESS);
342 }
343
344 /**
345 * @tc.name: resource_manager_test_013
346 * @tc.desc: Verify the GetDataByKeyPrefix function.
347 * @tc.type: FUNC
348 * @tc.require: AR000GHSJE
349 */
350 HWTEST_F(ResourceManagerTest, resource_manager_test_013, TestSize.Level0)
351 {
352 CapabilityInfoMap capMap;
353 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_0->GetDeviceId(), capMap),
354 DH_FWK_SUCCESS);
355 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_1->GetDeviceId(), capMap),
356 DH_FWK_SUCCESS);
357 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_2->GetDeviceId(), capMap),
358 DH_FWK_SUCCESS);
359 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_3->GetDeviceId(), capMap),
360 DH_FWK_SUCCESS);
361 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_4->GetDeviceId(), capMap),
362 DH_FWK_SUCCESS);
363 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_5->GetDeviceId(), capMap),
364 DH_FWK_SUCCESS);
365 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_6->GetDeviceId(), capMap),
366 DH_FWK_SUCCESS);
367 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_7->GetDeviceId(), capMap),
368 DH_FWK_SUCCESS);
369 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_8->GetDeviceId(), capMap),
370 DH_FWK_SUCCESS);
371 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_9->GetDeviceId(), capMap),
372 DH_FWK_SUCCESS);
373 EXPECT_EQ(capMap.size(), TEST_SIZE_10);
374 }
375
376 /**
377 * @tc.name: resource_manager_test_014
378 * @tc.desc: Verify the RemoveCapabilityInfoInDB function.
379 * @tc.type: FUNC
380 * @tc.require: AR000GHSJE
381 */
382 HWTEST_F(ResourceManagerTest, resource_manager_test_014, TestSize.Level0)
383 {
384 std::string deviceIdEmpty = "";
385 int32_t ret = CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoInDB(deviceIdEmpty);
386 EXPECT_EQ(ERR_DH_FWK_PARA_INVALID, ret);
387 }
388
389 /**
390 * @tc.name: resource_manager_test_015
391 * @tc.desc: Verify the GetCapabilityByValue function.
392 * @tc.type: FUNC
393 * @tc.require: AR000GHSJE
394 */
395 HWTEST_F(ResourceManagerTest, resource_manager_test_015, TestSize.Level0)
396 {
397 std::string value = "";
398 std::shared_ptr<CapabilityInfo> capPtr = nullptr;
399 int32_t ret = CapabilityUtils::GetCapabilityByValue(value, capPtr);
400 EXPECT_EQ(ERR_DH_FWK_JSON_PARSE_FAILED, ret);
401 }
402
403 /**
404 * @tc.name: resource_manager_test_016
405 * @tc.desc: Verify the GetCapabilityKey function.
406 * @tc.type: FUNC
407 * @tc.require: AR000GHSJE
408 */
409 HWTEST_F(ResourceManagerTest, resource_manager_test_016, TestSize.Level0)
410 {
411 std::string deviceId = "deviceIdtest";
412 std::string dhId = "dhIdtest";
413 std::string str = CapabilityUtils::GetCapabilityKey(deviceId, dhId);
414 EXPECT_EQ("deviceIdtest###dhIdtest", str);
415 }
416
417 /**
418 * @tc.name: resource_manager_test_017
419 * @tc.desc: Verify the IsCapKeyMatchDeviceId function.
420 * @tc.type: FUNC
421 * @tc.require: AR000GHSJE
422 */
423 HWTEST_F(ResourceManagerTest, resource_manager_test_017, TestSize.Level0)
424 {
425 std::string key = "keytest";
426 bool ret = CapabilityUtils::IsCapKeyMatchDeviceId(key, DEV_ID_0);
427 EXPECT_EQ(false, ret);
428 }
429
430 /**
431 * @tc.name: resource_manager_test_018
432 * @tc.desc: Verify the IsCapKeyMatchDeviceId function.
433 * @tc.type: FUNC
434 * @tc.require: AR000GHSJE
435 */
436 HWTEST_F(ResourceManagerTest, resource_manager_test_018, TestSize.Level0)
437 {
438 std::string key = "bb536a637105409e904d4da83790a4a7###keytest";
439 bool ret = CapabilityUtils::IsCapKeyMatchDeviceId(key, DEV_ID_0);
440 EXPECT_EQ(true, ret);
441 }
442
443 /**
444 * @tc.name: resource_manager_test_019
445 * @tc.desc: Verify the FromJsonString function.
446 * @tc.type: FUNC
447 * @tc.require: AR000GHSJE
448 */
449 HWTEST_F(ResourceManagerTest, resource_manager_test_019, TestSize.Level0)
450 {
451 CapabilityInfo capaInfo;
452 std::string jsonStr = "";
453 int32_t ret = capaInfo.FromJsonString(jsonStr);
454 EXPECT_EQ(ERR_DH_FWK_JSON_PARSE_FAILED, ret);
455 }
456
457 /**
458 * @tc.name: resource_manager_test_020
459 * @tc.desc: Verify the Compare function.
460 * @tc.type: FUNC
461 * @tc.require: AR000GHSJE
462 */
463 HWTEST_F(ResourceManagerTest, resource_manager_test_020, TestSize.Level0)
464 {
465 CapabilityInfo capaInfo(DH_ID_0, DEV_ID_0, DEV_NAME, TEST_DEV_TYPE_PAD, DHType::CAMERA, DH_ATTR_0);
466 bool ret = CAP_INFO_1->Compare(capaInfo);
467 EXPECT_EQ(false, ret);
468 }
469 } // namespace DistributedHardware
470 } // namespace OHOS
471