• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 * Copyright (c) 2021-2025 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 #include <memory>
18 #include <regex>
19 
20 #include "array_wrapper.h"
21 #include "bool_wrapper.h"
22 #include "byte_wrapper.h"
23 #include "double_wrapper.h"
24 #include "float_wrapper.h"
25 #include "int_wrapper.h"
26 #include "long_wrapper.h"
27 #define private public
28 #define protected public
29 #include "pac_map.h"
30 #undef protected
31 #undef private
32 #include "short_wrapper.h"
33 #include "string_wrapper.h"
34 #include "user_object_base.h"
35 
36 namespace OHOS {
37 namespace AppExecFwk {
38 using namespace testing::ext;
39 using namespace OHOS;
40 using namespace OHOS::AppExecFwk;
41 
42 #define PAC_MPA_TEST_INT 1000
43 #define PAC_MAP_TEST_LONG (-1000)
44 #define PAC_MAP_TEST_FLOAT 1.0f
45 #define PAC_MAP_TEST_DOUBLE 3.1415926
46 
47 /*
48 * Description:Test for data type of base: like int, short, long std::string etc.
49 */
50 class PacMapSecondTest : public testing::Test {
51 public:
PacMapSecondTest()52     PacMapSecondTest() : pacmap_(nullptr)
53     {}
~PacMapSecondTest()54     ~PacMapSecondTest()
55     {}
56 
57     std::shared_ptr<PacMap> pacmap_ = nullptr;
58     static void SetUpTestCase(void);
59     static void TearDownTestCase(void);
60     void SetUp();
61     void TearDown();
62 };
63 
SetUpTestCase(void)64 void PacMapSecondTest::SetUpTestCase(void)
65 {}
66 
TearDownTestCase(void)67 void PacMapSecondTest::TearDownTestCase(void)
68 {}
69 
SetUp()70 void PacMapSecondTest::SetUp()
71 {
72     pacmap_ = std::make_shared<PacMap>();
73 }
74 
TearDown()75 void PacMapSecondTest::TearDown()
76 {}
77 
78 /**
79 * @tc.number: AppExecFwk_PacMap_CompareArrayData_0100
80 * @tc.name: CompareArrayData
81 * @tc.desc: Verify CompareArrayData.
82 * @tc.require:
83 */
84 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_0100, Function | MediumTest | Level1)
85 {
86     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0100 start";
87     long size = 3;
88     InterfaceID id = g_IID_IArray;
89     AAFwk::Array array1(size, id);
90     AAFwk::Array array2(size, id);
91     AAFwk::IInterface *one_interface = static_cast<OHOS::AAFwk::IArray*>(&array1);
92     AAFwk::IInterface *two_interface = static_cast<OHOS::AAFwk::IArray*>(&array2);
93     bool result = pacmap_->CompareArrayData(one_interface, two_interface);
94     EXPECT_EQ(result, false);
95     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0100 end";
96 }
97 
98 /**
99 * @tc.number: AppExecFwk_PacMap_CompareArrayData_0200
100 * @tc.name: CompareArrayData
101 * @tc.desc: Verify CompareArrayData.
102 * @tc.require:
103 */
104 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_0200, Function | MediumTest | Level1)
105 {
106     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0200 start";
107     long size1 = 3;
108     long size2 = 4;
109     InterfaceID id = g_IID_IArray;
110     AAFwk::Array array1(size1, id);
111     AAFwk::Array array2(size2, id);
112     AAFwk::IInterface *one_interface = static_cast<OHOS::AAFwk::IArray*>(&array1);
113     AAFwk::IInterface *two_interface = static_cast<OHOS::AAFwk::IArray*>(&array2);
114     bool result = pacmap_->CompareArrayData(one_interface, two_interface);
115     EXPECT_EQ(result, false);
116     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0200 end";
117 }
118 
119 /**
120 * @tc.number: AppExecFwk_PacMap_CompareArrayData_0300
121 * @tc.name: CompareArrayData
122 * @tc.desc: Verify CompareArrayData.
123 * @tc.require:
124 */
125 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_0300, Function | MediumTest | Level1)
126 {
127     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0300 start";
128     sptr<AAFwk::IArray> ao1 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IBoolean);
129     if (ao1 != nullptr) {
130         ao1->Set(0, Boolean::Box(true));
131     }
132     sptr<AAFwk::IArray> ao2 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IBoolean);
133     if (ao2 != nullptr) {
134         ao2->Set(0, Boolean::Box(true));
135     }
136     AAFwk::IInterface *one_interface = static_cast<AAFwk::IArray*>(ao1);
137     AAFwk::IInterface *two_interface = static_cast<AAFwk::IArray*>(ao2);
138     bool result = pacmap_->CompareArrayData(one_interface, two_interface);
139     EXPECT_EQ(result, true);
140     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0300 end";
141 }
142 
143 /**
144 * @tc.number: AppExecFwk_PacMap_CompareArrayData_0400
145 * @tc.name: CompareArrayData
146 * @tc.desc: Verify CompareArrayData.
147 * @tc.require:
148 */
149 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_0400, Function | MediumTest | Level1)
150 {
151     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0400 start";
152     sptr<AAFwk::IArray> ao1 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IByte);
153     if (ao1 != nullptr) {
154         ao1->Set(0, Byte::Box('a'));
155     }
156     sptr<AAFwk::IArray> ao2 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IByte);
157     if (ao2 != nullptr) {
158         ao2->Set(0, Byte::Box('a'));
159     }
160     AAFwk::IInterface *one_interface = static_cast<AAFwk::IArray*>(ao1);
161     AAFwk::IInterface *two_interface = static_cast<AAFwk::IArray*>(ao2);
162     bool result = pacmap_->CompareArrayData(one_interface, two_interface);
163     EXPECT_EQ(result, true);
164     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0400 end";
165 }
166 
167 /**
168 * @tc.number: AppExecFwk_PacMap_CompareArrayData_0500
169 * @tc.name: CompareArrayData
170 * @tc.desc: Verify CompareArrayData.
171 * @tc.require:
172 */
173 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_0500, Function | MediumTest | Level1)
174 {
175     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0500 start";
176     sptr<AAFwk::IArray> ao1 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IShort);
177     if (ao1 != nullptr) {
178         ao1->Set(0, Short::Box(PAC_MPA_TEST_INT));
179     }
180     sptr<AAFwk::IArray> ao2 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IShort);
181     if (ao2 != nullptr) {
182         ao2->Set(0, Short::Box(PAC_MPA_TEST_INT));
183     }
184     AAFwk::IInterface *one_interface = static_cast<AAFwk::IArray*>(ao1);
185     AAFwk::IInterface *two_interface = static_cast<AAFwk::IArray*>(ao2);
186     bool result = pacmap_->CompareArrayData(one_interface, two_interface);
187     EXPECT_EQ(result, true);
188     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0500 end";
189 }
190 
191 /**
192 * @tc.number: AppExecFwk_PacMap_CompareArrayData_0600
193 * @tc.name: CompareArrayData
194 * @tc.desc: Verify CompareArrayData.
195 * @tc.require:
196 */
197 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_0600, Function | MediumTest | Level1)
198 {
199     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0600 start";
200     sptr<AAFwk::IArray> ao1 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IInteger);
201     if (ao1 != nullptr) {
202         ao1->Set(0, Integer::Box(PAC_MPA_TEST_INT));
203     }
204     sptr<AAFwk::IArray> ao2 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IInteger);
205     if (ao2 != nullptr) {
206         ao2->Set(0, Integer::Box(PAC_MPA_TEST_INT));
207     }
208     AAFwk::IInterface *one_interface = static_cast<AAFwk::IArray*>(ao1);
209     AAFwk::IInterface *two_interface = static_cast<AAFwk::IArray*>(ao2);
210     bool result = pacmap_->CompareArrayData(one_interface, two_interface);
211     EXPECT_EQ(result, true);
212     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0600 end";
213 }
214 
215 /**
216 * @tc.number: AppExecFwk_PacMap_CompareArrayData_0700
217 * @tc.name: CompareArrayData
218 * @tc.desc: Verify CompareArrayData.
219 * @tc.require:
220 */
221 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_0700, Function | MediumTest | Level1)
222 {
223     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0700 start";
224     sptr<AAFwk::IArray> ao1 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_ILong);
225     if (ao1 != nullptr) {
226         ao1->Set(0, Long::Box(PAC_MAP_TEST_LONG));
227     }
228     sptr<AAFwk::IArray> ao2 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_ILong);
229     if (ao2 != nullptr) {
230         ao2->Set(0, Long::Box(PAC_MAP_TEST_LONG));
231     }
232     AAFwk::IInterface *one_interface = static_cast<AAFwk::IArray*>(ao1);
233     AAFwk::IInterface *two_interface = static_cast<AAFwk::IArray*>(ao2);
234     pacmap_->CompareArrayData(one_interface, two_interface);
235     EXPECT_TRUE(pacmap_ != nullptr);
236     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0700 end";
237 }
238 
239 /**
240 * @tc.number: AppExecFwk_PacMap_CompareArrayData_0800
241 * @tc.name: CompareArrayData
242 * @tc.desc: Verify CompareArrayData.
243 * @tc.require:
244 */
245 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_0800, Function | MediumTest | Level1)
246 {
247     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0800 start";
248     sptr<AAFwk::IArray> ao1 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IFloat);
249     if (ao1 != nullptr) {
250         ao1->Set(0, Float::Box(PAC_MAP_TEST_FLOAT));
251     }
252     sptr<AAFwk::IArray> ao2 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IFloat);
253     if (ao2 != nullptr) {
254         ao2->Set(0, Float::Box(PAC_MAP_TEST_FLOAT));
255     }
256     AAFwk::IInterface *one_interface = static_cast<AAFwk::IArray*>(ao1);
257     AAFwk::IInterface *two_interface = static_cast<AAFwk::IArray*>(ao2);
258     bool result = pacmap_->CompareArrayData(one_interface, two_interface);
259     EXPECT_EQ(result, true);
260     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_0800 end";
261 }
262 
263 /**
264 * @tc.number: AppExecFwk_PacMap_CompareArrayData_1000
265 * @tc.name: CompareArrayData
266 * @tc.desc: Verify CompareArrayData.
267 * @tc.require:
268 */
269 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_CompareArrayData_1000, Function | MediumTest | Level1)
270 {
271     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_1000 start";
272     sptr<AAFwk::IArray> ao1 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IString);
273     if (ao1 != nullptr) {
274         ao1->Set(0, String::Box("<~!@#$%^&*()_+>特殊字符"));
275     }
276     sptr<AAFwk::IArray> ao2 = new (std::nothrow) AAFwk::Array(1, AAFwk::g_IID_IString);
277     if (ao2 != nullptr) {
278         ao2->Set(0, String::Box("<~!@#$%^&*()_+>特殊字符"));
279     }
280     AAFwk::IInterface *one_interface = static_cast<AAFwk::IArray*>(ao1);
281     AAFwk::IInterface *two_interface = static_cast<AAFwk::IArray*>(ao2);
282     bool result = pacmap_->CompareArrayData(one_interface, two_interface);
283     EXPECT_EQ(result, true);
284     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_CompareArrayData_1000 end";
285 }
286 
287 /**
288 * @tc.number: AppExecFwk_PacMap_Equals_0100
289 * @tc.name: Equals
290 * @tc.desc: Verify Equals.
291 * @tc.require:
292 */
293 HWTEST_F(PacMapSecondTest, AppExecFwk_PacMap_Equals_0100, Function | MediumTest | Level1)
294 {
295     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_Equals_0100 start";
296     Object other;
297     EXPECT_EQ(pacmap_->Equals(other), false);
298     GTEST_LOG_(INFO) << "AppExecFwk_PacMap_Equals_0100 end";
299 }
300 }  // namespace AppExecFwk
301 }  // namespace OHOS
302