• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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