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