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