1 /*
2 * Copyright (c) 2021-2023 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 #define private public
24 #include "capability_info.h"
25 #include "capability_info_manager.h"
26 #include "version_info_event.h"
27 #undef private
28 #include "dh_context.h"
29 #include "distributed_hardware_errno.h"
30 #include "distributed_hardware_log.h"
31 #include "nlohmann/json.hpp"
32
33 using namespace testing::ext;
34 using namespace std;
35
36 namespace OHOS {
37 namespace DistributedHardware {
38 #undef DH_LOG_TAG
39 #define DH_LOG_TAG "ResourceManagerTest"
40
41 namespace {
42 const string DATABASE_DIR = "/data/service/el1/public/database/dtbhardware_manager_service/";
43 const string DEV_ID_0 = "bb536a637105409e904d4da83790a4a7";
44 const string DEV_ID_1 = "bb536a637105409e904d4da83790a4a8";
45 const string TEST_DEV_NAME = "Dev1";
46 const string DH_ID_0 = "Camera_0";
47 const string DH_ID_1 = "Mic_0";
48 const string DH_ID_2 = "Gps_0";
49 const string DH_ID_3 = "Display_0";
50 const string DH_ID_4 = "Input_0";
51 const string DH_ATTR_0 = "attr0";
52 const string DH_ATTR_1 = "attr1";
53 constexpr uint16_t TEST_DEV_TYPE_PAD = 0x11;
54 constexpr uint32_t TEST_DH_TYPE_CAMERA = 0x01;
55 constexpr uint32_t TEST_DH_TYPE_MIC = 0x02;
56 constexpr uint32_t TEST_DH_TYPE_GPS = 0x10;
57 constexpr uint32_t TEST_DH_TYPE_DISPLAY = 0x08;
58 constexpr uint32_t TEST_DH_TYPE_BUTTON = 0x20;
59 constexpr uint32_t TEST_SIZE_0 = 0;
60 constexpr uint32_t TEST_SIZE_2 = 2;
61 constexpr uint32_t TEST_SIZE_5 = 5;
62 constexpr uint32_t TEST_SIZE_10 = 10;
63 const std::string EMPTY_PREFIX = "";
64
65 const shared_ptr<CapabilityInfo> CAP_INFO_0 =
66 make_shared<CapabilityInfo>(DH_ID_0, DEV_ID_0, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::CAMERA, DH_ATTR_0);
67 const shared_ptr<CapabilityInfo> CAP_INFO_1 =
68 make_shared<CapabilityInfo>(DH_ID_1, DEV_ID_0, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::AUDIO, DH_ATTR_0);
69 const shared_ptr<CapabilityInfo> CAP_INFO_2 =
70 make_shared<CapabilityInfo>(DH_ID_2, DEV_ID_0, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::GPS, DH_ATTR_0);
71 const shared_ptr<CapabilityInfo> CAP_INFO_3 =
72 make_shared<CapabilityInfo>(DH_ID_3, DEV_ID_0, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::SCREEN, DH_ATTR_0);
73 const shared_ptr<CapabilityInfo> CAP_INFO_4 =
74 make_shared<CapabilityInfo>(DH_ID_4, DEV_ID_0, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::INPUT, DH_ATTR_0);
75
76 const shared_ptr<CapabilityInfo> CAP_INFO_5 =
77 make_shared<CapabilityInfo>(DH_ID_0, DEV_ID_1, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::CAMERA, DH_ATTR_1);
78 const shared_ptr<CapabilityInfo> CAP_INFO_6 =
79 make_shared<CapabilityInfo>(DH_ID_1, DEV_ID_1, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::AUDIO, DH_ATTR_1);
80 const shared_ptr<CapabilityInfo> CAP_INFO_7 =
81 make_shared<CapabilityInfo>(DH_ID_2, DEV_ID_1, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::GPS, DH_ATTR_1);
82 const shared_ptr<CapabilityInfo> CAP_INFO_8 =
83 make_shared<CapabilityInfo>(DH_ID_3, DEV_ID_1, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::SCREEN, DH_ATTR_1);
84 const shared_ptr<CapabilityInfo> CAP_INFO_9 =
85 make_shared<CapabilityInfo>(DH_ID_4, DEV_ID_1, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::INPUT, DH_ATTR_1);
86 }
87
SetUpTestCase(void)88 void ResourceManagerTest::SetUpTestCase(void)
89 {
90 auto ret = mkdir(DATABASE_DIR.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
91 if (ret != 0) {
92 DHLOGE("mkdir failed, path: %s, errno : %d", DATABASE_DIR.c_str(), errno);
93 }
94 }
95
TearDownTestCase(void)96 void ResourceManagerTest::TearDownTestCase(void)
97 {
98 auto ret = remove(DATABASE_DIR.c_str());
99 if (ret != 0) {
100 DHLOGE("remove dir failed, path: %s, errno : %d", DATABASE_DIR.c_str(), errno);
101 }
102 }
103
SetUp()104 void ResourceManagerTest::SetUp()
105 {
106 vector<shared_ptr<CapabilityInfo>> resInfos { CAP_INFO_0, CAP_INFO_1, CAP_INFO_2, CAP_INFO_3, CAP_INFO_4,
107 CAP_INFO_5, CAP_INFO_6, CAP_INFO_7, CAP_INFO_8, CAP_INFO_9 };
108 CapabilityInfoManager::GetInstance()->AddCapability(resInfos);
109 }
110
TearDown()111 void ResourceManagerTest::TearDown()
112 {
113 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_0->GetKey());
114 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_1->GetKey());
115 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_2->GetKey());
116 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_3->GetKey());
117 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_4->GetKey());
118 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_5->GetKey());
119 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_6->GetKey());
120 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_7->GetKey());
121 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_8->GetKey());
122 CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_9->GetKey());
123 }
124
125 /**
126 * @tc.name: resource_manager_test_001
127 * @tc.desc: Verify the CapabilityInfoManager UnInit function.
128 * @tc.type: FUNC
129 * @tc.require: AR000GHSJE
130 */
131 HWTEST_F(ResourceManagerTest, resource_manager_test_001, TestSize.Level0)
132 {
133 EXPECT_EQ(CapabilityInfoManager::GetInstance()->Init(), DH_FWK_SUCCESS);
134 EXPECT_EQ(CapabilityInfoManager::GetInstance()->UnInit(), DH_FWK_SUCCESS);
135 }
136
137 /**
138 * @tc.name: resource_manager_test_002
139 * @tc.desc: Verify the CapabilityInfoManager Init function.
140 * @tc.type: FUNC
141 * @tc.require: AR000GHSCV
142 */
143 HWTEST_F(ResourceManagerTest, resource_manager_test_002, TestSize.Level0)
144 {
145 EXPECT_EQ(CapabilityInfoManager::GetInstance()->Init(), DH_FWK_SUCCESS);
146 }
147
148 /**
149 * @tc.name: resource_manager_test_003
150 * @tc.desc: Verify the CapabilityInfoManager SyncDeviceInfoFromDB function.
151 * @tc.type: FUNC
152 * @tc.require: AR000GHSJE
153 */
154 HWTEST_F(ResourceManagerTest, resource_manager_test_003, TestSize.Level0)
155 {
156 CapabilityInfoManager::GetInstance()->globalCapInfoMap_.clear();
157 EXPECT_EQ(CapabilityInfoManager::GetInstance()->SyncDeviceInfoFromDB(DEV_ID_0), DH_FWK_SUCCESS);
158 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_5);
159 EXPECT_EQ(CapabilityInfoManager::GetInstance()->SyncDeviceInfoFromDB(DEV_ID_1), DH_FWK_SUCCESS);
160 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_10);
161 }
162
163 /**
164 * @tc.name: resource_manager_test_004
165 * @tc.desc: Verify the CapabilityInfoManager SyncRemoteCapabilityInfos function.
166 * @tc.type: FUNC
167 * @tc.require: AR000GHSJE
168 */
169 HWTEST_F(ResourceManagerTest, resource_manager_test_004, TestSize.Level0)
170 {
171 CapabilityInfoManager::GetInstance()->globalCapInfoMap_.clear();
172 EXPECT_EQ(CapabilityInfoManager::GetInstance()->SyncRemoteCapabilityInfos(), DH_FWK_SUCCESS);
173 }
174
175 /**
176 * @tc.name: resource_manager_test_005
177 * @tc.desc: Verify the CapabilityInfoManager AddCapability function.
178 * @tc.type: FUNC
179 * @tc.require: AR000GHSCV
180 */
181 HWTEST_F(ResourceManagerTest, resource_manager_test_005, TestSize.Level0)
182 {
183 vector<shared_ptr<CapabilityInfo>> resInfos { CAP_INFO_0, CAP_INFO_1, CAP_INFO_2, CAP_INFO_3, CAP_INFO_4,
184 CAP_INFO_5, CAP_INFO_6, CAP_INFO_7, CAP_INFO_8, CAP_INFO_9 };
185 EXPECT_EQ(CapabilityInfoManager::GetInstance()->AddCapability(resInfos), DH_FWK_SUCCESS);
186 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_10);
187 }
188
189 /**
190 * @tc.name: resource_manager_test_006
191 * @tc.desc: Verify the CapabilityInfoManager AddCapabilityInMem function.
192 * @tc.type: FUNC
193 * @tc.require: AR000GHSCV
194 */
195 HWTEST_F(ResourceManagerTest, resource_manager_test_006, TestSize.Level0)
196 {
197 vector<shared_ptr<CapabilityInfo>> resInfos { CAP_INFO_0, CAP_INFO_1, CAP_INFO_2, CAP_INFO_3, CAP_INFO_4,
198 CAP_INFO_5, CAP_INFO_6, CAP_INFO_7, CAP_INFO_8, CAP_INFO_9 };
199 EXPECT_EQ(CapabilityInfoManager::GetInstance()->AddCapabilityInMem(resInfos), DH_FWK_SUCCESS);
200 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_10);
201 }
202
203
204 /**
205 * @tc.name: resource_manager_test_007
206 * @tc.desc: Verify the CapabilityInfoManager RemoveCapabilityInfoByKey function.
207 * @tc.type: FUNC
208 * @tc.require: AR000GHSJE
209 */
210 HWTEST_F(ResourceManagerTest, resource_manager_test_007, TestSize.Level0)
211 {
212 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_0->GetKey()), DH_FWK_SUCCESS);
213 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_1->GetKey()), DH_FWK_SUCCESS);
214 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_2->GetKey()), DH_FWK_SUCCESS);
215 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_3->GetKey()), DH_FWK_SUCCESS);
216 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_4->GetKey()), DH_FWK_SUCCESS);
217 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_5->GetKey()), DH_FWK_SUCCESS);
218 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_6->GetKey()), DH_FWK_SUCCESS);
219 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_7->GetKey()), DH_FWK_SUCCESS);
220 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_8->GetKey()), DH_FWK_SUCCESS);
221 EXPECT_EQ(CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoByKey(CAP_INFO_9->GetKey()), DH_FWK_SUCCESS);
222 EXPECT_EQ(CapabilityInfoManager::GetInstance()->globalCapInfoMap_.size(), TEST_SIZE_0);
223 }
224
225 /**
226 * @tc.name: resource_manager_test_008
227 * @tc.desc: Verify the CapabilityInfoManager QueryCapabilityByFilters function.
228 * @tc.type: FUNC
229 * @tc.require: AR000GHSJE
230 */
231 HWTEST_F(ResourceManagerTest, resource_manager_test_008, TestSize.Level0)
232 {
233 map<CapabilityInfoFilter, string> queryMap0 { { CapabilityInfoFilter::FILTER_DEVICE_ID, DEV_ID_0 } };
234 map<CapabilityInfoFilter, string> queryMap1 { { CapabilityInfoFilter::FILTER_DEVICE_ID, DEV_ID_1 } };
235 map<CapabilityInfoFilter, string> queryMap2 { { CapabilityInfoFilter::FILTER_DEVICE_NAME, TEST_DEV_NAME } };
236 map<CapabilityInfoFilter, string> queryMap3 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_0 } };
237 map<CapabilityInfoFilter, string> queryMap4 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_1 } };
238 map<CapabilityInfoFilter, string> queryMap5 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_2 } };
239 map<CapabilityInfoFilter, string> queryMap6 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_3 } };
240 map<CapabilityInfoFilter, string> queryMap7 { { CapabilityInfoFilter::FILTER_DH_ID, DH_ID_4 } };
241 map<CapabilityInfoFilter, string> queryMap8 { { CapabilityInfoFilter::FILTER_DEVICE_TYPE,
242 to_string(TEST_DEV_TYPE_PAD) } };
243 map<CapabilityInfoFilter, string> queryMap9 { { CapabilityInfoFilter::FILTER_DH_TYPE,
244 to_string(TEST_DH_TYPE_CAMERA) } };
245 map<CapabilityInfoFilter, string> queryMap10 { { CapabilityInfoFilter::FILTER_DH_TYPE,
246 to_string(TEST_DH_TYPE_MIC) } };
247 map<CapabilityInfoFilter, string> queryMap11 { { CapabilityInfoFilter::FILTER_DH_TYPE,
248 to_string(TEST_DH_TYPE_GPS) } };
249 map<CapabilityInfoFilter, string> queryMap12 { { CapabilityInfoFilter::FILTER_DH_TYPE,
250 to_string(TEST_DH_TYPE_DISPLAY) } };
251 map<CapabilityInfoFilter, string> queryMap13 { { CapabilityInfoFilter::FILTER_DH_TYPE,
252 to_string(TEST_DH_TYPE_BUTTON) } };
253 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap0).size(), TEST_SIZE_5);
254 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap1).size(), TEST_SIZE_5);
255 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap2).size(), TEST_SIZE_10);
256 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap3).size(), TEST_SIZE_2);
257 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap4).size(), TEST_SIZE_2);
258 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap5).size(), TEST_SIZE_2);
259 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap6).size(), TEST_SIZE_2);
260 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap7).size(), TEST_SIZE_2);
261 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap8).size(), TEST_SIZE_10);
262 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap9).size(), TEST_SIZE_2);
263 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap10).size(), TEST_SIZE_2);
264 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap11).size(), TEST_SIZE_2);
265 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap12).size(), TEST_SIZE_2);
266 EXPECT_EQ(CapabilityInfoManager::GetInstance()->QueryCapabilityByFilters(queryMap13).size(), TEST_SIZE_2);
267 }
268
269 /**
270 * @tc.name: resource_manager_test_009
271 * @tc.desc: Verify the HasCapability function.
272 * @tc.type: FUNC
273 * @tc.require: AR000GHSCV
274 */
275 HWTEST_F(ResourceManagerTest, resource_manager_test_009, TestSize.Level0)
276 {
277 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_0), true);
278 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_1), true);
279 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_2), true);
280 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_3), true);
281 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_0, DH_ID_4), true);
282 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_0), true);
283 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_1), true);
284 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_2), true);
285 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_3), true);
286 EXPECT_EQ(CapabilityInfoManager::GetInstance()->HasCapability(DEV_ID_1, DH_ID_4), true);
287 }
288
289 /**
290 * @tc.name: resource_manager_test_010
291 * @tc.desc: Verify the GetCapabilitiesByDeviceId function.
292 * @tc.type: FUNC
293 * @tc.require: AR000GHSJE
294 */
295 HWTEST_F(ResourceManagerTest, resource_manager_test_010, TestSize.Level0)
296 {
297 vector<shared_ptr<CapabilityInfo>> capInfos;
298 CapabilityInfoManager::GetInstance()->GetCapabilitiesByDeviceId(DEV_ID_0, capInfos);
299 EXPECT_EQ(capInfos.size(), TEST_SIZE_5);
300 CapabilityInfoManager::GetInstance()->GetCapabilitiesByDeviceId(DEV_ID_1, capInfos);
301 EXPECT_EQ(capInfos.size(), TEST_SIZE_10);
302 }
303
304 /**
305 * @tc.name: resource_manager_test_011
306 * @tc.desc: Verify the GetCapability function.
307 * @tc.type: FUNC
308 * @tc.require: AR000GHSJE
309 */
310 HWTEST_F(ResourceManagerTest, resource_manager_test_011, TestSize.Level0)
311 {
312 shared_ptr<CapabilityInfo> capInfo;
313 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_0, capInfo), DH_FWK_SUCCESS);
314 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_1, capInfo), DH_FWK_SUCCESS);
315 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_2, capInfo), DH_FWK_SUCCESS);
316 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_3, capInfo), DH_FWK_SUCCESS);
317 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_0, DH_ID_4, capInfo), DH_FWK_SUCCESS);
318 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_0, capInfo), DH_FWK_SUCCESS);
319 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_1, capInfo), DH_FWK_SUCCESS);
320 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_2, capInfo), DH_FWK_SUCCESS);
321 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_3, capInfo), DH_FWK_SUCCESS);
322 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetCapability(DEV_ID_1, DH_ID_4, capInfo), DH_FWK_SUCCESS);
323 }
324
325 /**
326 * @tc.name: resource_manager_test_012
327 * @tc.desc: Verify the GetDataByKey function.
328 * @tc.type: FUNC
329 * @tc.require: AR000GHSJE
330 */
331 HWTEST_F(ResourceManagerTest, resource_manager_test_012, TestSize.Level0)
332 {
333 shared_ptr<CapabilityInfo> capInfo;
334 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_0->GetKey(), capInfo), DH_FWK_SUCCESS);
335 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_1->GetKey(), capInfo), DH_FWK_SUCCESS);
336 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_2->GetKey(), capInfo), DH_FWK_SUCCESS);
337 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_3->GetKey(), capInfo), DH_FWK_SUCCESS);
338 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_4->GetKey(), capInfo), DH_FWK_SUCCESS);
339 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_5->GetKey(), capInfo), DH_FWK_SUCCESS);
340 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_6->GetKey(), capInfo), DH_FWK_SUCCESS);
341 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_7->GetKey(), capInfo), DH_FWK_SUCCESS);
342 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_8->GetKey(), capInfo), DH_FWK_SUCCESS);
343 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKey(CAP_INFO_9->GetKey(), capInfo), DH_FWK_SUCCESS);
344 }
345
346 /**
347 * @tc.name: resource_manager_test_013
348 * @tc.desc: Verify the GetDataByKeyPrefix function.
349 * @tc.type: FUNC
350 * @tc.require: AR000GHSJE
351 */
352 HWTEST_F(ResourceManagerTest, resource_manager_test_013, TestSize.Level0)
353 {
354 CapabilityInfoMap capMap;
355 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_0->GetDeviceId(), capMap),
356 DH_FWK_SUCCESS);
357 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_1->GetDeviceId(), capMap),
358 DH_FWK_SUCCESS);
359 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_2->GetDeviceId(), capMap),
360 DH_FWK_SUCCESS);
361 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_3->GetDeviceId(), capMap),
362 DH_FWK_SUCCESS);
363 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_4->GetDeviceId(), capMap),
364 DH_FWK_SUCCESS);
365 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_5->GetDeviceId(), capMap),
366 DH_FWK_SUCCESS);
367 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_6->GetDeviceId(), capMap),
368 DH_FWK_SUCCESS);
369 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_7->GetDeviceId(), capMap),
370 DH_FWK_SUCCESS);
371 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_8->GetDeviceId(), capMap),
372 DH_FWK_SUCCESS);
373 EXPECT_EQ(CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(CAP_INFO_9->GetDeviceId(), capMap),
374 DH_FWK_SUCCESS);
375 EXPECT_EQ(capMap.size(), TEST_SIZE_10);
376 }
377
378 /**
379 * @tc.name: resource_manager_test_014
380 * @tc.desc: Verify the RemoveCapabilityInfoInDB function.
381 * @tc.type: FUNC
382 * @tc.require: AR000GHSJE
383 */
384 HWTEST_F(ResourceManagerTest, resource_manager_test_014, TestSize.Level0)
385 {
386 std::string deviceIdEmpty = "";
387 int32_t ret = CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoInDB(deviceIdEmpty);
388 EXPECT_EQ(ERR_DH_FWK_PARA_INVALID, ret);
389 }
390
391 /**
392 * @tc.name: resource_manager_test_015
393 * @tc.desc: Verify the GetCapabilityByValue function.
394 * @tc.type: FUNC
395 * @tc.require: AR000GHSJE
396 */
397 HWTEST_F(ResourceManagerTest, resource_manager_test_015, TestSize.Level0)
398 {
399 std::string value = "";
400 std::shared_ptr<CapabilityInfo> capPtr = nullptr;
401 int32_t ret = CapabilityUtils::GetCapabilityByValue(value, capPtr);
402 EXPECT_EQ(ERR_DH_FWK_JSON_PARSE_FAILED, ret);
403 }
404
405 /**
406 * @tc.name: resource_manager_test_016
407 * @tc.desc: Verify the GetCapabilityKey function.
408 * @tc.type: FUNC
409 * @tc.require: AR000GHSJE
410 */
411 HWTEST_F(ResourceManagerTest, resource_manager_test_016, TestSize.Level0)
412 {
413 std::string deviceId = "deviceIdtest";
414 std::string dhId = "dhIdtest";
415 std::string str = CapabilityUtils::GetCapabilityKey(deviceId, dhId);
416 EXPECT_EQ("deviceIdtest###dhIdtest", str);
417 }
418
419 /**
420 * @tc.name: resource_manager_test_017
421 * @tc.desc: Verify the IsCapKeyMatchDeviceId function.
422 * @tc.type: FUNC
423 * @tc.require: AR000GHSJE
424 */
425 HWTEST_F(ResourceManagerTest, resource_manager_test_017, TestSize.Level0)
426 {
427 std::string key = "keytest";
428 bool ret = CapabilityUtils::IsCapKeyMatchDeviceId(key, DEV_ID_0);
429 EXPECT_EQ(false, ret);
430 }
431
432 /**
433 * @tc.name: resource_manager_test_018
434 * @tc.desc: Verify the IsCapKeyMatchDeviceId function.
435 * @tc.type: FUNC
436 * @tc.require: AR000GHSJE
437 */
438 HWTEST_F(ResourceManagerTest, resource_manager_test_018, TestSize.Level0)
439 {
440 std::string key = "bb536a637105409e904d4da83790a4a7###keytest";
441 bool ret = CapabilityUtils::IsCapKeyMatchDeviceId(key, DEV_ID_0);
442 EXPECT_EQ(true, ret);
443 }
444
445 /**
446 * @tc.name: resource_manager_test_019
447 * @tc.desc: Verify the FromJsonString function.
448 * @tc.type: FUNC
449 * @tc.require: AR000GHSJE
450 */
451 HWTEST_F(ResourceManagerTest, resource_manager_test_019, TestSize.Level0)
452 {
453 CapabilityInfo capaInfo;
454 std::string jsonStr = "";
455 int32_t ret = capaInfo.FromJsonString(jsonStr);
456 EXPECT_EQ(ERR_DH_FWK_JSON_PARSE_FAILED, ret);
457 }
458
459 /**
460 * @tc.name: resource_manager_test_020
461 * @tc.desc: Verify the Compare function.
462 * @tc.type: FUNC
463 * @tc.require: AR000GHSJE
464 */
465 HWTEST_F(ResourceManagerTest, resource_manager_test_020, TestSize.Level0)
466 {
467 CapabilityInfo capaInfo(DH_ID_0, DEV_ID_0, TEST_DEV_NAME, TEST_DEV_TYPE_PAD, DHType::CAMERA, DH_ATTR_0);
468 bool ret = CAP_INFO_1->Compare(capaInfo);
469 EXPECT_EQ(false, ret);
470 }
471
472 /**
473 * @tc.name: OnChange_001
474 * @tc.desc: Verify the OnChange function
475 * @tc.type: FUNC
476 * @tc.require: AR000GHSJE
477 */
478 HWTEST_F(ResourceManagerTest, OnChange_001, TestSize.Level0)
479 {
480 DistributedKv::Entry insert, update, del;
481 insert.key = "strBase";
482 update.key = "strBase";
483 del.key = "strBase";
484 insert.value = "strBase";
485 update.value = "strBase";
486 del.value = "strBase";
487 std::vector<DistributedKv::Entry> inserts, updates, deleteds;
488 inserts.push_back(insert);
489 updates.push_back(update);
490 deleteds.push_back(del);
491
492 DistributedKv::ChangeNotification changeIn(std::move(inserts), std::move(updates), std::move(deleteds), "", true);
493
494 CapabilityInfoManager::GetInstance()->OnChange(changeIn);
495 EXPECT_NE(nullptr, CapabilityInfoManager::GetInstance()->dbAdapterPtr_);
496 }
497
498 /**
499 * @tc.name: OnEvent_001
500 * @tc.desc: Verify the OnEvent function
501 * @tc.type: FUNC
502 * @tc.require: AR000GHSJM
503 */
504 HWTEST_F(ResourceManagerTest, OnEvent_001, TestSize.Level0)
505 {
506 EventSender sender;
507 CapabilityInfoEvent ev(sender);
508 CapabilityInfoManager::GetInstance()->OnEvent(ev);
509 EXPECT_NE(nullptr, CapabilityInfoManager::GetInstance()->dbAdapterPtr_);
510 }
511
512 /**
513 * @tc.name: OnEvent_002
514 * @tc.desc: Verify the OnEvent function
515 * @tc.type: FUNC
516 * @tc.require: AR000GHSJM
517 */
518 HWTEST_F(ResourceManagerTest, OnEvent_002, TestSize.Level0)
519 {
520 EventSender sender;
521 CapabilityInfoEvent ev(sender);
522 ev.action_ = CapabilityInfoEvent::EventType::RECOVER;
523 CapabilityInfoManager::GetInstance()->OnEvent(ev);
524 EXPECT_NE(nullptr, CapabilityInfoManager::GetInstance()->dbAdapterPtr_);
525 }
526
527 /**
528 * @tc.name: HandleCapabilityAddChange_001
529 * @tc.desc: Verify the HandleCapabilityAddChange function
530 * @tc.type: FUNC
531 * @tc.require: AR000GHSJM
532 */
533 HWTEST_F(ResourceManagerTest, HandleCapabilityAddChange_001, TestSize.Level0)
534 {
535 std::vector<DistributedKv::Entry> insertRecords;
536 DistributedKv::Entry entry;
537 entry.key = "strBase";
538 entry.value = "strBase";
539 insertRecords.push_back(entry);
540 CapabilityInfoManager::GetInstance()->HandleCapabilityAddChange(insertRecords);
541 EXPECT_NE(nullptr, CapabilityInfoManager::GetInstance()->dbAdapterPtr_);
542 }
543
544 /**
545 * @tc.name: HandleCapabilityUpdateChange_001
546 * @tc.desc: Verify the HandleCapabilityUpdateChange function
547 * @tc.type: FUNC
548 * @tc.require: AR000GHSJM
549 */
550 HWTEST_F(ResourceManagerTest, HandleCapabilityUpdateChange_001, TestSize.Level0)
551 {
552 std::vector<DistributedKv::Entry> updateRecords;
553 DistributedKv::Entry entry;
554 entry.key = "strBase";
555 entry.value = "strBase";
556 updateRecords.push_back(entry);
557 CapabilityInfoManager::GetInstance()->HandleCapabilityUpdateChange(updateRecords);
558 EXPECT_NE(nullptr, CapabilityInfoManager::GetInstance()->dbAdapterPtr_);
559 }
560
561 /**
562 * @tc.name: IsCapabilityMatchFilter_001
563 * @tc.desc: Verify the IsCapabilityMatchFilter function
564 * @tc.type: FUNC
565 * @tc.require: AR000GHSJM
566 */
567 HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_001, TestSize.Level0)
568 {
569 std::shared_ptr<CapabilityInfo> cap = nullptr;
570 CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_ID;
571 std::string value;
572 bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value);
573 EXPECT_EQ(false, ret);
574 }
575
576 /**
577 * @tc.name: IsCapabilityMatchFilter_002
578 * @tc.desc: Verify the IsCapabilityMatchFilter function
579 * @tc.type: FUNC
580 * @tc.require: AR000GHSJM
581 */
582 HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_002, TestSize.Level0)
583 {
584 std::shared_ptr<CapabilityInfo> cap = std::make_shared<CapabilityInfo>("", "", "", 0, DHType::UNKNOWN, "");
585 CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_ID;
586 std::string value;
587 bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value);
588 EXPECT_EQ(true, ret);
589 }
590
591 /**
592 * @tc.name: IsCapabilityMatchFilter_003
593 * @tc.desc: Verify the IsCapabilityMatchFilter function
594 * @tc.type: FUNC
595 * @tc.require: AR000GHSJM
596 */
597 HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_003, TestSize.Level0)
598 {
599 std::shared_ptr<CapabilityInfo> cap = std::make_shared<CapabilityInfo>("", "", "", 0, DHType::UNKNOWN, "");
600 CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DEVICE_ID;
601 std::string value;
602 bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value);
603 EXPECT_EQ(true, ret);
604 }
605
606 /**
607 * @tc.name: IsCapabilityMatchFilter_004
608 * @tc.desc: Verify the IsCapabilityMatchFilter function
609 * @tc.type: FUNC
610 * @tc.require: AR000GHSJM
611 */
612 HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_004, TestSize.Level0)
613 {
614 std::shared_ptr<CapabilityInfo> cap = std::make_shared<CapabilityInfo>("", "", "", 0, DHType::UNKNOWN, "");
615 CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DEVICE_NAME;
616 std::string value;
617 bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value);
618 EXPECT_EQ(true, ret);
619 }
620
621 /**
622 * @tc.name: IsCapabilityMatchFilter_005
623 * @tc.desc: Verify the IsCapabilityMatchFilter function
624 * @tc.type: FUNC
625 * @tc.require: AR000GHSJM
626 */
627 HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_005, TestSize.Level0)
628 {
629 std::shared_ptr<CapabilityInfo> cap = std::make_shared<CapabilityInfo>("", "", "", 0, DHType::UNKNOWN, "");
630 CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DEVICE_TYPE;
631 uint16_t devType = 123;
632 std::string value = std::to_string(devType);
633 bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value);
634 EXPECT_EQ(false, ret);
635 }
636
637 /**
638 * @tc.name: IsCapabilityMatchFilter_006
639 * @tc.desc: Verify the IsCapabilityMatchFilter function
640 * @tc.type: FUNC
641 * @tc.require: AR000GHSJM
642 */
643 HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_006, TestSize.Level0)
644 {
645 std::shared_ptr<CapabilityInfo> cap = std::make_shared<CapabilityInfo>("", "", "", 0, DHType::UNKNOWN, "");
646 CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_TYPE;
647 DHType dhType = DHType::AUDIO;
648 std::string value = std::to_string(static_cast<uint32_t>(dhType));
649 bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value);
650 EXPECT_EQ(false, ret);
651 }
652
653 /**
654 * @tc.name: IsCapabilityMatchFilter_007
655 * @tc.desc: Verify the IsCapabilityMatchFilter function
656 * @tc.type: FUNC
657 * @tc.require: AR000GHSJM
658 */
659 HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_007, TestSize.Level0)
660 {
661 std::shared_ptr<CapabilityInfo> cap = std::make_shared<CapabilityInfo>("", "", "", 0, DHType::UNKNOWN, "");
662 CapabilityInfoFilter filter = CapabilityInfoFilter::FILTER_DH_ATTRS;
663 std::string value;
664 bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value);
665 EXPECT_EQ(true, ret);
666 }
667
668 /**
669 * @tc.name: IsCapabilityMatchFilter_008
670 * @tc.desc: Verify the IsCapabilityMatchFilter function
671 * @tc.type: FUNC
672 * @tc.require: AR000GHSJM
673 */
674 HWTEST_F(ResourceManagerTest, IsCapabilityMatchFilter_008, TestSize.Level0)
675 {
676 std::shared_ptr<CapabilityInfo> cap = std::make_shared<CapabilityInfo>("", "", "", 0, DHType::UNKNOWN, "");
677 uint32_t invalid = 6;
678 CapabilityInfoFilter filter = static_cast<CapabilityInfoFilter>(invalid);
679 std::string value;
680 bool ret = CapabilityInfoManager::GetInstance()->IsCapabilityMatchFilter(cap, filter, value);
681 EXPECT_EQ(false, ret);
682 }
683
684 /**
685 * @tc.name: GetCapabilitiesByDeviceId_001
686 * @tc.desc: Verify the GetCapabilitiesByDeviceId function
687 * @tc.type: FUNC
688 * @tc.require: AR000GHSJM
689 */
690 HWTEST_F(ResourceManagerTest, GetCapabilitiesByDeviceId_001, TestSize.Level0)
691 {
692 std::string deviceId;
693 std::vector<std::shared_ptr<CapabilityInfo>> resInfos;
694 CapabilityInfoManager::GetInstance()->GetCapabilitiesByDeviceId(deviceId, resInfos);
695 EXPECT_NE(nullptr, CapabilityInfoManager::GetInstance()->dbAdapterPtr_);
696 }
697
698 /**
699 * @tc.name: HasCapability_001
700 * @tc.desc: Verify the HasCapability function
701 * @tc.type: FUNC
702 * @tc.require: AR000GHSJM
703 */
704 HWTEST_F(ResourceManagerTest, HasCapability_001, TestSize.Level0)
705 {
706 std::string deviceId;
707 std::string dhId;
708 bool ret = CapabilityInfoManager::GetInstance()->HasCapability(deviceId, dhId);
709 EXPECT_EQ(false, ret);
710 }
711
712 /**
713 * @tc.name: SyncRemoteCapabilityInfos_001
714 * @tc.desc: Verify the CapabilityInfoManager SyncRemoteCapabilityInfos function.
715 * @tc.type: FUNC
716 * @tc.require: AR000GHSJE
717 */
718 HWTEST_F(ResourceManagerTest, SyncRemoteCapabilityInfos_001, TestSize.Level0)
719 {
720 CapabilityInfoManager::GetInstance()->globalCapInfoMap_.clear();
721 CapabilityInfoManager::GetInstance()->dbAdapterPtr_ = nullptr;
722 int32_t ret = CapabilityInfoManager::GetInstance()->SyncRemoteCapabilityInfos();
723 EXPECT_EQ(ERR_DH_FWK_RESOURCE_DB_ADAPTER_POINTER_NULL, ret);
724 }
725
726 /**
727 * @tc.name: RemoveCapabilityInfoInDB_001
728 * @tc.desc: Verify the RemoveCapabilityInfoInDB function.
729 * @tc.type: FUNC
730 * @tc.require: AR000GHSJE
731 */
732 HWTEST_F(ResourceManagerTest, RemoveCapabilityInfoInDB_001, TestSize.Level0)
733 {
734 std::string deviceIdEmpty;
735 uint32_t MAX_ID_LEN = 257;
736 deviceIdEmpty.resize(MAX_ID_LEN);
737 int32_t ret = CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoInDB(deviceIdEmpty);
738 EXPECT_EQ(ERR_DH_FWK_PARA_INVALID, ret);
739 }
740
741 /**
742 * @tc.name: RemoveCapabilityInfoInDB_002
743 * @tc.desc: Verify the RemoveCapabilityInfoInDB function.
744 * @tc.type: FUNC
745 * @tc.require: AR000GHSJE
746 */
747 HWTEST_F(ResourceManagerTest, RemoveCapabilityInfoInDB_002, TestSize.Level0)
748 {
749 std::string deviceIdEmpty = "deviceIdEmpty";
750 CapabilityInfoManager::GetInstance()->dbAdapterPtr_ = nullptr;
751 int32_t ret = CapabilityInfoManager::GetInstance()->RemoveCapabilityInfoInDB(deviceIdEmpty);
752 EXPECT_EQ(ERR_DH_FWK_RESOURCE_DB_ADAPTER_POINTER_NULL, ret);
753 }
754
755 /**
756 * @tc.name: HandleCapabilityDeleteChange_001
757 * @tc.desc: Verify the HandleCapabilityDeleteChange function.
758 * @tc.type: FUNC
759 * @tc.require: AR000GHSJE
760 */
761 HWTEST_F(ResourceManagerTest, HandleCapabilityDeleteChange_001, TestSize.Level0)
762 {
763 std::vector<DistributedKv::Entry> deleteRecords;
764 DistributedKv::Entry entry;
765 entry.key = "strBase";
766 entry.value = "strBase";
767 deleteRecords.push_back(entry);
768 CapabilityInfoManager::GetInstance()->HandleCapabilityDeleteChange(deleteRecords);
769 EXPECT_EQ(nullptr, CapabilityInfoManager::GetInstance()->dbAdapterPtr_);
770 }
771
772 /**
773 * @tc.name: GetDataByKey_001
774 * @tc.desc: Verify the GetDataByKey function.
775 * @tc.type: FUNC
776 * @tc.require: AR000GHSJE
777 */
778 HWTEST_F(ResourceManagerTest, GetDataByKey_001, TestSize.Level0)
779 {
780 std::string key;
781 std::shared_ptr<CapabilityInfo> capInfoPtr;
782 CapabilityInfoManager::GetInstance()->dbAdapterPtr_ = nullptr;
783 int32_t ret = CapabilityInfoManager::GetInstance()->GetDataByKey(key, capInfoPtr);
784 EXPECT_EQ(ERR_DH_FWK_RESOURCE_DB_ADAPTER_POINTER_NULL, ret);
785 }
786
787 /**
788 * @tc.name: GetDataByKeyPrefix_001
789 * @tc.desc: Verify the GetDataByKeyPrefix function.
790 * @tc.type: FUNC
791 * @tc.require: AR000GHSJE
792 */
793 HWTEST_F(ResourceManagerTest, GetDataByKeyPrefix_001, TestSize.Level0)
794 {
795 std::string keyPrefix;
796 CapabilityInfoMap capabilityMap;
797 CapabilityInfoManager::GetInstance()->dbAdapterPtr_ = nullptr;
798 int32_t ret = CapabilityInfoManager::GetInstance()->GetDataByKeyPrefix(keyPrefix, capabilityMap);
799 EXPECT_EQ(ERR_DH_FWK_RESOURCE_DB_ADAPTER_POINTER_NULL, ret);
800 }
801
802 /**
803 * @tc.name: DumpCapabilityInfos_001
804 * @tc.desc: Verify the DumpCapabilityInfos function.
805 * @tc.type: FUNC
806 * @tc.require: AR000GHSJE
807 */
808 HWTEST_F(ResourceManagerTest, DumpCapabilityInfos_001, TestSize.Level0)
809 {
810 std::vector<CapabilityInfo> capInfos;
811 std::string dhId;
812 std::string devId;
813 std::string devName;
814 uint16_t devType = 0;
815 DHType dhType = DHType::GPS;
816 std::string dhAttrs;
817 CapabilityInfo info(dhId, devId, devName, devType, dhType, dhAttrs);
818 capInfos.push_back(info);
819 CapabilityInfoManager::GetInstance()->DumpCapabilityInfos(capInfos);
820 EXPECT_EQ(nullptr, CapabilityInfoManager::GetInstance()->dbAdapterPtr_);
821 }
822
823 /**
824 * @tc.name: FromJson_001
825 * @tc.desc: Verify the FromJson function.
826 * @tc.type: FUNC
827 * @tc.require: AR000GHSJE
828 */
829 HWTEST_F(ResourceManagerTest, FromJson_001, TestSize.Level0)
830 {
831 std::string dhId;
832 std::string devId;
833 std::string devName;
834 uint16_t devType = 0;
835 DHType dhType = DHType::GPS;
836 std::string dhAttrs;
837 CapabilityInfo info(dhId, devId, devName, devType, dhType, dhAttrs);
838 nlohmann::json jsonObject;
839 const std::string DH_ID = "dh_id";
840 const std::string DEV_ID = "dev_id";
841 const std::string DEV_NAME = "dev_name";
842 const std::string DEV_TYPE = "dev_type";
843 const std::string DH_TYPE = "dh_type";
844 const std::string DH_ATTRS = "dh_attrs";
845 jsonObject[DH_ID] = "dh_id";
846 jsonObject[DEV_ID] = "dev_id";
847 jsonObject[DEV_NAME] = "dev_name";
848 jsonObject[DEV_TYPE] = "dev_type";
849 jsonObject[DH_TYPE] = "dh_type";
850 jsonObject[DH_ATTRS] = "dh_attrs";
851 CapabilityInfo capability;
852 std::string jsonStr = jsonObject.dump();
853 EXPECT_EQ(DH_FWK_SUCCESS, info.FromJsonString(jsonStr));
854 }
855 } // namespace DistributedHardware
856 } // namespace OHOS
857