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 "include/cpp/abckit_cpp.h"
17 #include "../check_mock.h"
18 #include "include/cpp/headers/core/module.h"
19 #include "src/mock/mock_values.h"
20 #include "../cpp_helpers_mock.h"
21 #include <gtest/gtest.h>
22
23 namespace libabckit::cpp_test {
24
25 class LibAbcKitCppMockTestFile : public ::testing::Test {};
26
27 // Test: test-kind=mock, api=File::CreateValueU1, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateValueU1)28 TEST_F(LibAbcKitCppMockTestFile, File_CreateValueU1)
29 {
30 ASSERT_TRUE(CheckMockedStackEmpty());
31 {
32 abckit::File f(DEFAULT_PATH);
33 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
34 f.CreateValueU1(DEFAULT_BOOL);
35
36 ASSERT_TRUE(CheckMockedApi("CreateValueU1"));
37 }
38 ASSERT_TRUE(CheckMockedApi("CloseFile"));
39 ASSERT_TRUE(CheckMockedStackEmpty());
40 }
41
42 // Test: test-kind=mock, api=File::CreateValueDouble, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateValueDouble)43 TEST_F(LibAbcKitCppMockTestFile, File_CreateValueDouble)
44 {
45 ASSERT_TRUE(CheckMockedStackEmpty());
46 {
47 abckit::File f(DEFAULT_PATH);
48 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
49 f.CreateValueDouble(DEFAULT_DOUBLE);
50
51 ASSERT_TRUE(CheckMockedApi("CreateValueDouble"));
52 }
53 ASSERT_TRUE(CheckMockedApi("CloseFile"));
54 ASSERT_TRUE(CheckMockedStackEmpty());
55 }
56
57 // Test: test-kind=mock, api=File::CreateLiteralBool, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralBool)58 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralBool)
59 {
60 ASSERT_TRUE(CheckMockedStackEmpty());
61 {
62 abckit::File f(DEFAULT_PATH);
63 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
64 f.CreateLiteralBool(DEFAULT_BOOL);
65
66 ASSERT_TRUE(CheckMockedApi("CreateLiteralBool"));
67 }
68 ASSERT_TRUE(CheckMockedApi("CloseFile"));
69 ASSERT_TRUE(CheckMockedStackEmpty());
70 }
71
72 // Test: test-kind=mock, api=File::CreateLiteralU8, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralU8)73 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralU8)
74 {
75 ASSERT_TRUE(CheckMockedStackEmpty());
76 {
77 abckit::File f(DEFAULT_PATH);
78 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
79 f.CreateLiteralU8(DEFAULT_U8);
80
81 ASSERT_TRUE(CheckMockedApi("CreateLiteralU8"));
82 }
83 ASSERT_TRUE(CheckMockedApi("CloseFile"));
84 ASSERT_TRUE(CheckMockedStackEmpty());
85 }
86
87 // Test: test-kind=mock, api=File::CreateLiteralU16, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralU16)88 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralU16)
89 {
90 ASSERT_TRUE(CheckMockedStackEmpty());
91 {
92 abckit::File f(DEFAULT_PATH);
93 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
94 f.CreateLiteralU16(DEFAULT_U16);
95
96 ASSERT_TRUE(CheckMockedApi("CreateLiteralU16"));
97 }
98 ASSERT_TRUE(CheckMockedApi("CloseFile"));
99 ASSERT_TRUE(CheckMockedStackEmpty());
100 }
101
102 // Test: test-kind=mock, api=File::CreateLiteralU32, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralU32)103 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralU32)
104 {
105 ASSERT_TRUE(CheckMockedStackEmpty());
106 {
107 abckit::File f(DEFAULT_PATH);
108 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
109 f.CreateLiteralU32(DEFAULT_U32);
110
111 ASSERT_TRUE(CheckMockedApi("CreateLiteralU32"));
112 }
113 ASSERT_TRUE(CheckMockedApi("CloseFile"));
114 ASSERT_TRUE(CheckMockedStackEmpty());
115 }
116
117 // Test: test-kind=mock, api=File::CreateLiteralU64, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralU64)118 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralU64)
119 {
120 ASSERT_TRUE(CheckMockedStackEmpty());
121 {
122 abckit::File f(DEFAULT_PATH);
123 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
124 f.CreateLiteralU64(DEFAULT_U64);
125
126 ASSERT_TRUE(CheckMockedApi("CreateLiteralU64"));
127 }
128 ASSERT_TRUE(CheckMockedApi("CloseFile"));
129 ASSERT_TRUE(CheckMockedStackEmpty());
130 }
131
132 // Test: test-kind=mock, api=File::CreateLiteralFloat, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralFloat)133 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralFloat)
134 {
135 ASSERT_TRUE(CheckMockedStackEmpty());
136 {
137 abckit::File f(DEFAULT_PATH);
138 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
139 f.CreateLiteralFloat(DEFAULT_FLOAT);
140
141 ASSERT_TRUE(CheckMockedApi("CreateLiteralFloat"));
142 }
143 ASSERT_TRUE(CheckMockedApi("CloseFile"));
144 ASSERT_TRUE(CheckMockedStackEmpty());
145 }
146
147 // Test: test-kind=mock, api=File::CreateLiteralDouble, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralDouble)148 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralDouble)
149 {
150 ASSERT_TRUE(CheckMockedStackEmpty());
151 {
152 abckit::File f(DEFAULT_PATH);
153 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
154 f.CreateLiteralDouble(DEFAULT_DOUBLE);
155
156 ASSERT_TRUE(CheckMockedApi("CreateLiteralDouble"));
157 }
158 ASSERT_TRUE(CheckMockedApi("CloseFile"));
159 ASSERT_TRUE(CheckMockedStackEmpty());
160 }
161
162 // Test: test-kind=mock, api=File::CreateLiteralLiteralArray, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralLiteralArray)163 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralLiteralArray)
164 {
165 ASSERT_TRUE(CheckMockedStackEmpty());
166 {
167 abckit::File f(DEFAULT_PATH);
168 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
169 f.CreateLiteralLiteralArray(abckit::mock::helpers::GetMockLiteralArray(f));
170
171 ASSERT_TRUE(CheckMockedApi("CreateLiteralLiteralArray"));
172 }
173 ASSERT_TRUE(CheckMockedApi("CloseFile"));
174 ASSERT_TRUE(CheckMockedStackEmpty());
175 }
176
177 // Test: test-kind=mock, api=File::CreateLiteralArray, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralArray)178 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralArray)
179 {
180 ASSERT_TRUE(CheckMockedStackEmpty());
181 {
182 abckit::File f(DEFAULT_PATH);
183 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
184 auto l = abckit::mock::helpers::GetMockLiteral(f);
185 f.CreateLiteralArray({l});
186
187 ASSERT_TRUE(CheckMockedApi("CreateLiteralArray"));
188 }
189 ASSERT_TRUE(CheckMockedApi("CloseFile"));
190 ASSERT_TRUE(CheckMockedStackEmpty());
191 }
192
193 // Test: test-kind=mock, api=File::CreateLiteralString, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralString)194 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralString)
195 {
196 ASSERT_TRUE(CheckMockedStackEmpty());
197 {
198 abckit::File f(DEFAULT_PATH);
199 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
200 f.CreateLiteralString(DEFAULT_CONST_CHAR);
201 ASSERT_TRUE(CheckMockedApi("CreateLiteralString"));
202 }
203 ASSERT_TRUE(CheckMockedApi("CloseFile"));
204 ASSERT_TRUE(CheckMockedStackEmpty());
205 }
206
207 // Test: test-kind=mock, api=File::CreateLiteralMethod, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralMethod)208 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralMethod)
209 {
210 ASSERT_TRUE(CheckMockedStackEmpty());
211 {
212 abckit::File f(DEFAULT_PATH);
213 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
214 auto func = abckit::mock::helpers::GetMockCoreFunction(f);
215 f.CreateLiteralMethod(func);
216 ASSERT_TRUE(CheckMockedApi("CreateLiteralMethod"));
217 }
218 ASSERT_TRUE(CheckMockedApi("CloseFile"));
219 ASSERT_TRUE(CheckMockedStackEmpty());
220 }
221
222 // Test: test-kind=mock, api=File::WriteAbc, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_WriteAbc)223 TEST_F(LibAbcKitCppMockTestFile, File_WriteAbc)
224 {
225 ASSERT_TRUE(CheckMockedStackEmpty());
226 {
227 abckit::File f(DEFAULT_PATH);
228 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
229 f.WriteAbc(DEFAULT_PATH);
230
231 ASSERT_TRUE(CheckMockedApi("WriteAbc"));
232 }
233 ASSERT_TRUE(CheckMockedApi("CloseFile"));
234 ASSERT_TRUE(CheckMockedStackEmpty());
235 }
236
237 // Test: test-kind=mock, api=File::GetModules, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_GetModules)238 TEST_F(LibAbcKitCppMockTestFile, File_GetModules)
239 {
240 ASSERT_TRUE(CheckMockedStackEmpty());
241 {
242 abckit::File f(DEFAULT_PATH);
243 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
244 f.GetModules();
245 ASSERT_TRUE(CheckMockedApi("FileEnumerateModules"));
246 }
247 ASSERT_TRUE(CheckMockedApi("CloseFile"));
248 ASSERT_TRUE(CheckMockedStackEmpty());
249 }
250
251 // Test: test-kind=mock, api=File::EnumerateModules, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_EnumerateModules)252 TEST_F(LibAbcKitCppMockTestFile, File_EnumerateModules)
253 {
254 ASSERT_TRUE(CheckMockedStackEmpty());
255 {
256 abckit::File f(DEFAULT_PATH);
257 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
258 f.EnumerateModules(DEFAULT_LAMBDA(abckit::core::Module));
259 ASSERT_TRUE(CheckMockedApi("FileEnumerateModules"));
260 }
261 ASSERT_TRUE(CheckMockedApi("CloseFile"));
262 ASSERT_TRUE(CheckMockedStackEmpty());
263 }
264
265 // Test: test-kind=mock, api=File::EnumerateExternalModules, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_EnumerateExternalModules)266 TEST_F(LibAbcKitCppMockTestFile, File_EnumerateExternalModules)
267 {
268 ASSERT_TRUE(CheckMockedStackEmpty());
269 {
270 abckit::File f(DEFAULT_PATH);
271 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
272 f.EnumerateExternalModules(DEFAULT_LAMBDA(abckit::core::Module));
273 ASSERT_TRUE(CheckMockedApi("FileEnumerateExternalModules"));
274 }
275 ASSERT_TRUE(CheckMockedApi("CloseFile"));
276 ASSERT_TRUE(CheckMockedStackEmpty());
277 }
278
279 // Test: test-kind=mock, api=File::CreateType, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateType)280 TEST_F(LibAbcKitCppMockTestFile, File_CreateType)
281 {
282 ASSERT_TRUE(CheckMockedStackEmpty());
283 {
284 abckit::File f(DEFAULT_PATH);
285 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
286 f.CreateType(DEFAULT_ENUM_TYPE_ID);
287 ASSERT_TRUE(CheckMockedApi("CreateType"));
288 }
289 ASSERT_TRUE(CheckMockedApi("CloseFile"));
290 ASSERT_TRUE(CheckMockedStackEmpty());
291 }
292
293 // Test: test-kind=mock, api=File::CreateReferenceType, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateReferenceType)294 TEST_F(LibAbcKitCppMockTestFile, File_CreateReferenceType)
295 {
296 ASSERT_TRUE(CheckMockedStackEmpty());
297 {
298 abckit::File f(DEFAULT_PATH);
299 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
300 auto c = abckit::mock::helpers::GetMockCoreClass(f);
301 f.CreateReferenceType(c);
302 ASSERT_TRUE(CheckMockedApi("CreateReferenceType"));
303 }
304 ASSERT_TRUE(CheckMockedApi("CloseFile"));
305 ASSERT_TRUE(CheckMockedStackEmpty());
306 }
307
308 // Test: test-kind=mock, api=File::CreateValueString, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateValueString)309 TEST_F(LibAbcKitCppMockTestFile, File_CreateValueString)
310 {
311 ASSERT_TRUE(CheckMockedStackEmpty());
312 {
313 abckit::File f(DEFAULT_PATH);
314 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
315 f.CreateValueString(DEFAULT_CONST_CHAR);
316 ASSERT_TRUE(CheckMockedApi("CreateValueString"));
317 }
318 ASSERT_TRUE(CheckMockedApi("CloseFile"));
319 ASSERT_TRUE(CheckMockedStackEmpty());
320 }
321
322 // Test: test-kind=mock, api=File::CreateLiteralArrayValue, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralArrayValue)323 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralArrayValue)
324 {
325 ASSERT_TRUE(CheckMockedStackEmpty());
326 {
327 abckit::File f(DEFAULT_PATH);
328 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
329 auto val = abckit::mock::helpers::GetMockValueU1(f);
330 std::vector<abckit::Value> litArr = {val};
331 f.CreateLiteralArrayValue(litArr, 1);
332 ASSERT_TRUE(CheckMockedApi("CreateLiteralArrayValue"));
333 }
334 ASSERT_TRUE(CheckMockedApi("CloseFile"));
335 ASSERT_TRUE(CheckMockedStackEmpty());
336 }
337
338 // Test: test-kind=mock, api=File::CreateLiteralMethodAffiliate, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_CreateLiteralMethodAffiliate)339 TEST_F(LibAbcKitCppMockTestFile, File_CreateLiteralMethodAffiliate)
340 {
341 ASSERT_TRUE(CheckMockedStackEmpty());
342 {
343 abckit::File f(DEFAULT_PATH);
344 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
345 f.CreateLiteralMethodAffiliate(DEFAULT_U16);
346 ASSERT_TRUE(CheckMockedApi("CreateLiteralMethodAffiliate"));
347 }
348 ASSERT_TRUE(CheckMockedApi("CloseFile"));
349 ASSERT_TRUE(CheckMockedStackEmpty());
350 }
351
352 // Test: test-kind=mock, api=File::AddExternalModuleArktsV1, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_AddExternalModuleArktsV1)353 TEST_F(LibAbcKitCppMockTestFile, File_AddExternalModuleArktsV1)
354 {
355 ASSERT_TRUE(CheckMockedStackEmpty());
356 {
357 abckit::File f(DEFAULT_PATH);
358 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
359 f.AddExternalModuleArktsV1(DEFAULT_CONST_CHAR);
360 ASSERT_TRUE(CheckMockedApi("CoreModuleToArktsModule"));
361 ASSERT_TRUE(CheckMockedApi("ArktsModuleToCoreModule"));
362 ASSERT_TRUE(CheckMockedApi("FileAddExternalModuleArktsV1"));
363 }
364 ASSERT_TRUE(CheckMockedApi("CloseFile"));
365 ASSERT_TRUE(CheckMockedStackEmpty());
366 }
367
368 // Test: test-kind=mock, api=File::AddExternalModuleJs, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockTestFile,File_AddExternalModuleJs)369 TEST_F(LibAbcKitCppMockTestFile, File_AddExternalModuleJs)
370 {
371 ASSERT_TRUE(CheckMockedStackEmpty());
372 {
373 abckit::File f(DEFAULT_PATH);
374 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
375 f.AddExternalModuleJs(DEFAULT_CONST_CHAR);
376 ASSERT_TRUE(CheckMockedApi("CoreModuleToJsModule"));
377 ASSERT_TRUE(CheckMockedApi("JsModuleToCoreModule"));
378 ASSERT_TRUE(CheckMockedApi("FileAddExternalModule"));
379 }
380 ASSERT_TRUE(CheckMockedApi("CloseFile"));
381 ASSERT_TRUE(CheckMockedStackEmpty());
382 }
383
384 } // namespace libabckit::cpp_test