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