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