• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 <gtest/gtest.h>
17 
18 #include "cJSON.h"
19 
20 #include "constants.h"
21 #include "dh_utils_tool.h"
22 #include "distributed_hardware_errno.h"
23 #include "meta_capability_info.h"
24 #include "meta_info_manager.h"
25 
26 using namespace testing::ext;
27 using namespace std;
28 
29 namespace OHOS {
30 namespace DistributedHardware {
31 namespace {
32     constexpr uint16_t DEV_TYPE_TEST = 14;
33     constexpr uint32_t DH_TYPE_TEST = 0x01;
34     const std::string DHID_TEST = "123456789";
35     const std::string DEVID_TEST = "111222333";
36     const std::string DEVNAME_TEST = "camera";
37     const std::string DHATTRS_TEST = "attrs";
38     const std::string DHSUBTYPE_TEST = "subtype";
39     const std::string UDIDHASH_TEST = "987654321";
40     const std::string SINKVER_TEST = "1.0";
41 
42 }
43 
44 class MetaCapInfoTest : public testing::Test {
45 public:
46     static void SetUpTestCase(void);
47     static void TearDownTestCase(void);
48     void SetUp();
49     void TearDown();
50 };
51 
SetUp()52 void MetaCapInfoTest::SetUp() {}
53 
TearDown()54 void MetaCapInfoTest::TearDown() {}
55 
SetUpTestCase()56 void MetaCapInfoTest::SetUpTestCase() {}
57 
TearDownTestCase()58 void MetaCapInfoTest::TearDownTestCase() {}
59 
60 HWTEST_F(MetaCapInfoTest, FromJsonString_001, TestSize.Level0)
61 {
62     uint16_t devType = 1;
63     std::shared_ptr<MetaCapabilityInfo> metaCapInfo =
64         std::make_shared<MetaCapabilityInfo>("", "", "", devType, DHType::CAMERA, "", "", "",
65             CompVersion{ .sinkVersion = "" });
66     std::string jsonStr = "";
67     auto ret = metaCapInfo->FromJsonString(jsonStr);
68     EXPECT_EQ(ERR_DH_FWK_PARA_INVALID, ret);
69 }
70 
71 HWTEST_F(MetaCapInfoTest, FromJsonString_002, TestSize.Level0)
72 {
73     uint16_t devType = 1;
74     std::shared_ptr<MetaCapabilityInfo> metaCapInfo =
75         std::make_shared<MetaCapabilityInfo>("", "", "", devType, DHType::CAMERA, "", "", "",
76             CompVersion{ .sinkVersion = "" });
77     cJSON *jsonObj = cJSON_CreateObject();
78     ASSERT_TRUE(jsonObj != nullptr);
79     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
80     char* cjson = cJSON_PrintUnformatted(jsonObj);
81     if (cjson == nullptr) {
82         cJSON_Delete(jsonObj);
83         return;
84     }
85     std::string jsonStr(cjson);
86     auto ret = metaCapInfo->FromJsonString(jsonStr);
87     cJSON_free(cjson);
88     cJSON_Delete(jsonObj);
89     EXPECT_EQ(DH_FWK_SUCCESS, ret);
90 }
91 
92 HWTEST_F(MetaCapInfoTest, ToJson_001, TestSize.Level0)
93 {
94     cJSON *jsonObject = nullptr;
95     MetaCapabilityInfo metaCapInfo;
96     EXPECT_NO_FATAL_FAILURE(ToJson(jsonObject, metaCapInfo));
97 }
98 
99 HWTEST_F(MetaCapInfoTest, FromJson_001, TestSize.Level0)
100 {
101     MetaCapabilityInfo metaCapInfo;
102     cJSON *jsonObj = cJSON_CreateObject();
103     ASSERT_TRUE(jsonObj != nullptr);
104     cJSON_AddNumberToObject(jsonObj, DH_ID.c_str(), 1);
105     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
106     cJSON_Delete(jsonObj);
107 }
108 
109 HWTEST_F(MetaCapInfoTest, FromJson_002, TestSize.Level0)
110 {
111     MetaCapabilityInfo metaCapInfo;
112     cJSON *jsonObj = cJSON_CreateObject();
113     ASSERT_TRUE(jsonObj != nullptr);
114     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
115     cJSON_AddNumberToObject(jsonObj, DEV_ID.c_str(), 1);
116     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
117     cJSON_Delete(jsonObj);
118 }
119 
120 HWTEST_F(MetaCapInfoTest, FromJson_003, TestSize.Level0)
121 {
122     MetaCapabilityInfo metaCapInfo;
123     cJSON *jsonObj = cJSON_CreateObject();
124     ASSERT_TRUE(jsonObj != nullptr);
125     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
126     cJSON_AddStringToObject(jsonObj, DEV_ID.c_str(), DEVID_TEST.c_str());
127     cJSON_AddNumberToObject(jsonObj, DEV_NAME.c_str(), 1);
128     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
129     cJSON_Delete(jsonObj);
130 }
131 
132 HWTEST_F(MetaCapInfoTest, FromJson_004, TestSize.Level0)
133 {
134     MetaCapabilityInfo metaCapInfo;
135     cJSON *jsonObj = cJSON_CreateObject();
136     ASSERT_TRUE(jsonObj != nullptr);
137     std::string devTypeTest = "devTypeTest";
138     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
139     cJSON_AddStringToObject(jsonObj, DEV_ID.c_str(), DEVID_TEST.c_str());
140     cJSON_AddStringToObject(jsonObj, DEV_NAME.c_str(), DEVNAME_TEST.c_str());
141     cJSON_AddStringToObject(jsonObj, DEV_TYPE.c_str(), devTypeTest.c_str());
142     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
143     cJSON_Delete(jsonObj);
144 }
145 
146 HWTEST_F(MetaCapInfoTest, FromJson_005, TestSize.Level0)
147 {
148     MetaCapabilityInfo metaCapInfo;
149     cJSON *jsonObj = cJSON_CreateObject();
150     ASSERT_TRUE(jsonObj != nullptr);
151     std::string dhTypeTest = "dhTypeTest";
152     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
153     cJSON_AddStringToObject(jsonObj, DEV_ID.c_str(), DEVID_TEST.c_str());
154     cJSON_AddStringToObject(jsonObj, DEV_NAME.c_str(), DEVNAME_TEST.c_str());
155     cJSON_AddNumberToObject(jsonObj, DEV_TYPE.c_str(), DEV_TYPE_TEST);
156     cJSON_AddStringToObject(jsonObj, DH_TYPE.c_str(), dhTypeTest.c_str());
157     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
158     cJSON_Delete(jsonObj);
159 }
160 
161 HWTEST_F(MetaCapInfoTest, FromJson_006, TestSize.Level0)
162 {
163     MetaCapabilityInfo metaCapInfo;
164     cJSON *jsonObj = cJSON_CreateObject();
165     ASSERT_TRUE(jsonObj != nullptr);
166     std::string dhTypeTest = "dhTypeTest";
167     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
168     cJSON_AddStringToObject(jsonObj, DEV_ID.c_str(), DEVID_TEST.c_str());
169     cJSON_AddStringToObject(jsonObj, DEV_NAME.c_str(), DEVNAME_TEST.c_str());
170     cJSON_AddNumberToObject(jsonObj, DEV_TYPE.c_str(), DEV_TYPE_TEST);
171     cJSON_AddNumberToObject(jsonObj, DH_TYPE.c_str(), DH_TYPE_TEST);
172     cJSON_AddNumberToObject(jsonObj, DH_ATTRS.c_str(), 1);
173     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
174     cJSON_Delete(jsonObj);
175 }
176 
177 HWTEST_F(MetaCapInfoTest, FromJson_007, TestSize.Level0)
178 {
179     MetaCapabilityInfo metaCapInfo;
180     cJSON *jsonObj = cJSON_CreateObject();
181     ASSERT_TRUE(jsonObj != nullptr);
182     std::string dhTypeTest = "dhTypeTest";
183     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
184     cJSON_AddStringToObject(jsonObj, DEV_ID.c_str(), DEVID_TEST.c_str());
185     cJSON_AddStringToObject(jsonObj, DEV_NAME.c_str(), DEVNAME_TEST.c_str());
186     cJSON_AddNumberToObject(jsonObj, DEV_TYPE.c_str(), DEV_TYPE_TEST);
187     cJSON_AddNumberToObject(jsonObj, DH_TYPE.c_str(), DH_TYPE_TEST);
188     cJSON_AddStringToObject(jsonObj, DH_ATTRS.c_str(), DHATTRS_TEST.c_str());
189     cJSON_AddNumberToObject(jsonObj, DH_SUBTYPE.c_str(), 1);
190     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
191     cJSON_Delete(jsonObj);
192 }
193 
194 HWTEST_F(MetaCapInfoTest, FromJson_008, TestSize.Level0)
195 {
196     MetaCapabilityInfo metaCapInfo;
197     cJSON *jsonObj = cJSON_CreateObject();
198     ASSERT_TRUE(jsonObj != nullptr);
199     std::string dhTypeTest = "dhTypeTest";
200     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
201     cJSON_AddStringToObject(jsonObj, DEV_ID.c_str(), DEVID_TEST.c_str());
202     cJSON_AddStringToObject(jsonObj, DEV_NAME.c_str(), DEVNAME_TEST.c_str());
203     cJSON_AddNumberToObject(jsonObj, DEV_TYPE.c_str(), DEV_TYPE_TEST);
204     cJSON_AddNumberToObject(jsonObj, DH_TYPE.c_str(), DH_TYPE_TEST);
205     cJSON_AddStringToObject(jsonObj, DH_ATTRS.c_str(), DHATTRS_TEST.c_str());
206     cJSON_AddStringToObject(jsonObj, DH_SUBTYPE.c_str(), DHSUBTYPE_TEST.c_str());
207     cJSON_AddNumberToObject(jsonObj, DEV_UDID_HASH.c_str(), 1);
208     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
209     cJSON_Delete(jsonObj);
210 }
211 
212 HWTEST_F(MetaCapInfoTest, FromJson_009, TestSize.Level0)
213 {
214     MetaCapabilityInfo metaCapInfo;
215     cJSON *jsonObj = cJSON_CreateObject();
216     ASSERT_TRUE(jsonObj != nullptr);
217     std::string dhTypeTest = "dhTypeTest";
218     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
219     cJSON_AddStringToObject(jsonObj, DEV_ID.c_str(), DEVID_TEST.c_str());
220     cJSON_AddStringToObject(jsonObj, DEV_NAME.c_str(), DEVNAME_TEST.c_str());
221     cJSON_AddNumberToObject(jsonObj, DEV_TYPE.c_str(), DEV_TYPE_TEST);
222     cJSON_AddNumberToObject(jsonObj, DH_TYPE.c_str(), DH_TYPE_TEST);
223     cJSON_AddStringToObject(jsonObj, DH_ATTRS.c_str(), DHATTRS_TEST.c_str());
224     cJSON_AddStringToObject(jsonObj, DH_SUBTYPE.c_str(), DHSUBTYPE_TEST.c_str());
225     cJSON_AddStringToObject(jsonObj, DEV_UDID_HASH.c_str(), UDIDHASH_TEST.c_str());
226     cJSON_AddNumberToObject(jsonObj, SINK_VER.c_str(), 1);
227     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
228     cJSON_Delete(jsonObj);
229 }
230 
231 HWTEST_F(MetaCapInfoTest, FromJson_010, TestSize.Level0)
232 {
233     MetaCapabilityInfo metaCapInfo;
234     cJSON *jsonObj = cJSON_CreateObject();
235     ASSERT_TRUE(jsonObj != nullptr);
236     cJSON_AddStringToObject(jsonObj, DH_ID.c_str(), DHID_TEST.c_str());
237     cJSON_AddStringToObject(jsonObj, DEV_ID.c_str(), DEVID_TEST.c_str());
238     cJSON_AddStringToObject(jsonObj, DEV_NAME.c_str(), DEVNAME_TEST.c_str());
239     cJSON_AddNumberToObject(jsonObj, DEV_TYPE.c_str(), DEV_TYPE_TEST);
240     cJSON_AddNumberToObject(jsonObj, DH_TYPE.c_str(), DH_TYPE_TEST);
241     cJSON_AddStringToObject(jsonObj, DH_ATTRS.c_str(), DHATTRS_TEST.c_str());
242     cJSON_AddStringToObject(jsonObj, DH_SUBTYPE.c_str(), DHSUBTYPE_TEST.c_str());
243     cJSON_AddStringToObject(jsonObj, DEV_UDID_HASH.c_str(), UDIDHASH_TEST.c_str());
244     cJSON_AddStringToObject(jsonObj, SINK_VER.c_str(), SINKVER_TEST.c_str());
245     EXPECT_NO_FATAL_FAILURE(FromJson(jsonObj, metaCapInfo));
246     cJSON_Delete(jsonObj);
247 }
248 
249 HWTEST_F(MetaCapInfoTest, Compare_001, TestSize.Level0)
250 {
251     uint16_t devType = 1;
252     MetaCapabilityInfo metaCapInfo("", "", "", devType, DHType::CAMERA, "", "", "", CompVersion{ .sinkVersion = "" });
253     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr =
254         std::make_shared<MetaCapabilityInfo>("devid_123", "", "", devType, DHType::CAMERA, "", "", "",
255             CompVersion{ .sinkVersion = "" });
256     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
257     EXPECT_EQ(false, ret);
258 }
259 
260 HWTEST_F(MetaCapInfoTest, Compare_002, TestSize.Level0)
261 {
262     uint16_t devType = 1;
263     MetaCapabilityInfo metaCapInfo("devid_123", "", "", devType, DHType::CAMERA, "", "", "",
264         CompVersion{ .sinkVersion = "" });
265     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr =
266         std::make_shared<MetaCapabilityInfo>("devid_123", "dhid_123", "", devType, DHType::CAMERA, "", "", "",
267             CompVersion{ .sinkVersion = "" });
268     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
269     EXPECT_EQ(false, ret);
270 }
271 
272 HWTEST_F(MetaCapInfoTest, Compare_003, TestSize.Level0)
273 {
274     uint16_t devType = 1;
275     MetaCapabilityInfo metaCapInfo("devid_123", "dhid_123", "", devType, DHType::CAMERA, "", "", "",
276         CompVersion{ .sinkVersion = "" });
277     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr = std::make_shared<MetaCapabilityInfo>(
278         "devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "", "", "", CompVersion{ .sinkVersion = "" });
279     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
280     EXPECT_EQ(false, ret);
281 }
282 
283 HWTEST_F(MetaCapInfoTest, Compare_004, TestSize.Level0)
284 {
285     uint16_t devType = 1;
286     MetaCapabilityInfo metaCapInfo("devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "", "", "",
287         CompVersion{ .sinkVersion = "" });
288     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr =
289         std::make_shared<MetaCapabilityInfo>("devid_123", "dhid_123", "devname", 2, DHType::CAMERA, "", "", "",
290             CompVersion{ .sinkVersion = "" });
291     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
292     EXPECT_EQ(false, ret);
293 }
294 
295 HWTEST_F(MetaCapInfoTest, Compare_005, TestSize.Level0)
296 {
297     uint16_t devType = 1;
298     MetaCapabilityInfo metaCapInfo("devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "", "", "",
299         CompVersion{ .sinkVersion = "" });
300     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr = std::make_shared<MetaCapabilityInfo>(
301         "devid_123", "dhid_123", "devname", devType, DHType::AUDIO, "", "", "", CompVersion{ .sinkVersion = "" });
302     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
303     EXPECT_EQ(false, ret);
304 }
305 
306 HWTEST_F(MetaCapInfoTest, Compare_006, TestSize.Level0)
307 {
308     uint16_t devType = 1;
309     MetaCapabilityInfo metaCapInfo("devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "", "", "",
310         CompVersion{ .sinkVersion = "" });
311     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr = std::make_shared<MetaCapabilityInfo>(
312         "devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "attrs", "", "",
313         CompVersion{ .sinkVersion = "" });
314     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
315     EXPECT_EQ(false, ret);
316 }
317 
318 HWTEST_F(MetaCapInfoTest, Compare_007, TestSize.Level0)
319 {
320     uint16_t devType = 1;
321     MetaCapabilityInfo metaCapInfo("devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "attrs", "", "",
322         CompVersion{ .sinkVersion = "" });
323     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr = std::make_shared<MetaCapabilityInfo>(
324         "devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "attrs", "subtype", "",
325         CompVersion{ .sinkVersion = "" });
326     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
327     EXPECT_EQ(false, ret);
328 }
329 
330 HWTEST_F(MetaCapInfoTest, Compare_008, TestSize.Level0)
331 {
332     uint16_t devType = 1;
333     MetaCapabilityInfo metaCapInfo("devid_123", "dhid_123", "devname",
334         devType, DHType::CAMERA, "attrs", "subtype", "", CompVersion{ .sinkVersion = "" });
335     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr = std::make_shared<MetaCapabilityInfo>(
336         "devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "attrs", "subtype", "udidhash_123",
337         CompVersion{ .sinkVersion = "" });
338     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
339     EXPECT_EQ(false, ret);
340 }
341 
342 HWTEST_F(MetaCapInfoTest, Compare_009, TestSize.Level0)
343 {
344     uint16_t devType = 1;
345     MetaCapabilityInfo metaCapInfo("devid_123", "dhid_123", "devname",
346         devType, DHType::CAMERA, "attrs", "subtype", "udidhash_123", CompVersion{ .sinkVersion = "" });
347     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr = std::make_shared<MetaCapabilityInfo>(
348         "devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "attrs", "subtype", "udidhash_123",
349         CompVersion{ .sinkVersion = "1.0" });
350     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
351     EXPECT_EQ(false, ret);
352 }
353 
354 HWTEST_F(MetaCapInfoTest, Compare_010, TestSize.Level0)
355 {
356     uint16_t devType = 1;
357     MetaCapabilityInfo metaCapInfo("devid_123", "dhid_123", "devname",
358         devType, DHType::CAMERA, "attrs", "subtype", "udidhash_123", CompVersion{ .sinkVersion = "1.0" });
359     std::shared_ptr<MetaCapabilityInfo> metaCapInfoPtr = std::make_shared<MetaCapabilityInfo>(
360         "devid_123", "dhid_123", "devname", devType, DHType::CAMERA, "attrs", "subtype", "udidhash_123",
361         CompVersion{ .sinkVersion = "1.0" });
362     auto ret = metaCapInfoPtr->Compare(metaCapInfo);
363     EXPECT_EQ(true, ret);
364 }
365 }
366 }