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 #include <cstring>
18
19 #include "libabckit/include/c/abckit.h"
20 #include "libabckit/include/c/extensions/arkts/metadata_arkts.h"
21 #include "helpers/helpers.h"
22 #include "libabckit/include/c/metadata_core.h"
23 #include "libabckit/include/c/statuses.h"
24
25 namespace libabckit::test {
26
27 static auto g_impl = AbckitGetApiImpl(ABCKIT_VERSION_RELEASE_1_0_0);
28 static auto g_implI = AbckitGetInspectApiImpl(ABCKIT_VERSION_RELEASE_1_0_0);
29 static auto g_implArktsI = AbckitGetArktsInspectApiImpl(ABCKIT_VERSION_RELEASE_1_0_0);
30
31 class LibAbcKitArkTSInspectApiCasts : public ::testing::Test {};
32
ProcessAnnotationElement(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)33 static void ProcessAnnotationElement(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
34 {
35 bool isVisitedAny = false;
36 g_implI->functionEnumerateAnnotations(method, &isVisitedAny, [](AbckitCoreAnnotation *anno, void *data) {
37 g_implI->annotationEnumerateElements(anno, data, [](AbckitCoreAnnotationElement *annoElem, void *data) {
38 AbckitArktsAnnotationElement *annoArkTSelem =
39 g_implArktsI->coreAnnotationElementToArktsAnnotationElement(annoElem);
40 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
41 AbckitCoreAnnotationElement *annoElemCast =
42 g_implArktsI->arktsAnnotationElementToCoreAnnotationElement(annoArkTSelem);
43 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
44 EXPECT_EQ(annoElem, annoElemCast);
45 *reinterpret_cast<bool *>(data) = true;
46 return true;
47 });
48 return true;
49 });
50 ASSERT_TRUE(isVisitedAny);
51 }
52
ProcessAnnotation(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)53 static void ProcessAnnotation(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
54 {
55 g_implI->functionEnumerateAnnotations(method, nullptr, [](AbckitCoreAnnotation *anno, void *) {
56 AbckitArktsAnnotation *annoArkTS = g_implArktsI->coreAnnotationToArktsAnnotation(anno);
57 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
58 AbckitCoreAnnotation *annoElemCast = g_implArktsI->arktsAnnotationToCoreAnnotation(annoArkTS);
59 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
60 EXPECT_EQ(anno, annoElemCast);
61 return true;
62 });
63 }
64
ProcessAnnotationInterface(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)65 static void ProcessAnnotationInterface(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
66 {
67 AbckitCoreModule *module = g_implI->functionGetModule(method);
68 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
69 bool isVisitedAny = false;
70 g_implI->moduleEnumerateAnnotationInterfaces(
71 module, &isVisitedAny, [](AbckitCoreAnnotationInterface *annoI, void *data) {
72 AbckitArktsAnnotationInterface *annoIArkTS =
73 g_implArktsI->coreAnnotationInterfaceToArktsAnnotationInterface(annoI);
74 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
75 AbckitCoreAnnotationInterface *annoICast =
76 g_implArktsI->arktsAnnotationInterfaceToCoreAnnotationInterface(annoIArkTS);
77 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
78 EXPECT_EQ(annoI, annoICast);
79 *reinterpret_cast<bool *>(data) = true;
80 return true;
81 });
82 ASSERT_TRUE(isVisitedAny);
83 }
84
ProcessAnnotationInterfaceField(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)85 static void ProcessAnnotationInterfaceField(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
86 {
87 AbckitCoreModule *module = g_implI->functionGetModule(method);
88 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
89 bool isVisitedAny = false;
90 g_implI->moduleEnumerateAnnotationInterfaces(
91 module, &isVisitedAny, [](AbckitCoreAnnotationInterface *annoI, void *data) {
92 g_implI->annotationInterfaceEnumerateFields(
93 annoI, data, [](AbckitCoreAnnotationInterfaceField *annoIf, void *data) {
94 AbckitArktsAnnotationInterfaceField *annoIfArkTS =
95 g_implArktsI->coreAnnotationInterfaceFieldToArktsAnnotationInterfaceField(annoIf);
96 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
97 AbckitCoreAnnotationInterfaceField *annoIfCast =
98 g_implArktsI->arktsAnnotationInterfaceFieldToCoreAnnotationInterfaceField(annoIfArkTS);
99 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
100 EXPECT_EQ(annoIf, annoIfCast);
101 *reinterpret_cast<bool *>(data) = true;
102 return true;
103 });
104 return true;
105 });
106 ASSERT_TRUE(isVisitedAny);
107 }
108
ProcessClass(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)109 static void ProcessClass(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
110 {
111 AbckitCoreClass *klass = g_implI->functionGetParentClass(method);
112 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
113 AbckitArktsClass *klassArkTS = g_implArktsI->coreClassToArktsClass(klass);
114 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
115 AbckitCoreClass *klassCast = g_implArktsI->arktsClassToCoreClass(klassArkTS);
116 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
117 EXPECT_EQ(klass, klassCast);
118 }
119
ProcessClassNeg(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)120 static void ProcessClassNeg(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
121 {
122 AbckitCoreClass *klass = g_implI->functionGetParentClass(method);
123 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
124 AbckitArktsClass *klassArkTS = g_implArktsI->coreClassToArktsClass(klass);
125 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_WRONG_TARGET);
126 EXPECT_EQ(klassArkTS, nullptr);
127 }
128
ProcessMethod(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)129 static void ProcessMethod(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
130 {
131 AbckitArktsFunction *methodArkTS = g_implArktsI->coreFunctionToArktsFunction(method);
132 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
133 AbckitCoreFunction *methodCast = g_implArktsI->arktsFunctionToCoreFunction(methodArkTS);
134 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
135 EXPECT_EQ(method, methodCast);
136 }
137
ProcessMethodNeg(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)138 static void ProcessMethodNeg(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
139 {
140 AbckitArktsFunction *methodArk = g_implArktsI->coreFunctionToArktsFunction(method);
141 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_WRONG_TARGET);
142 EXPECT_EQ(methodArk, nullptr);
143 }
144
ProcessModule(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)145 static void ProcessModule(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
146 {
147 AbckitCoreModule *module = g_implI->functionGetModule(method);
148 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
149 AbckitArktsModule *moduleArkTS = g_implArktsI->coreModuleToArktsModule(module);
150 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
151 AbckitCoreModule *moduleCast = g_implArktsI->arktsModuleToCoreModule(moduleArkTS);
152 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
153 EXPECT_EQ(module, moduleCast);
154 }
155
ProcessModuleNeg(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)156 static void ProcessModuleNeg(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
157 {
158 AbckitCoreModule *module = g_implI->functionGetModule(method);
159 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
160 AbckitArktsModule *moduleArkTS = g_implArktsI->coreModuleToArktsModule(module);
161 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_WRONG_TARGET);
162 EXPECT_EQ(moduleArkTS, nullptr);
163 }
164
ProcessNamespace(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)165 static void ProcessNamespace(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
166 {
167 AbckitCoreModule *module = g_implI->functionGetModule(method);
168 bool visited = false;
169 g_implI->moduleEnumerateNamespaces(module, &visited, [](AbckitCoreNamespace *n, void *visited) {
170 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
171 AbckitArktsNamespace *namespaceArkTS = g_implArktsI->coreNamespaceToArktsNamespace(n);
172 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
173 AbckitCoreNamespace *namespaceCast = g_implArktsI->arktsNamespaceToCoreNamespace(namespaceArkTS);
174 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
175 EXPECT_EQ(n, namespaceCast);
176 *reinterpret_cast<bool *>(visited) = true;
177 return true;
178 });
179 EXPECT_TRUE(visited);
180 }
181
ProcessImportDescriptor(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)182 static void ProcessImportDescriptor(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
183 {
184 AbckitCoreModule *module = g_implI->functionGetModule(method);
185 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
186 bool isVisitedAny = false;
187 g_implI->moduleEnumerateImports(module, &isVisitedAny, [](AbckitCoreImportDescriptor *id, void *data) {
188 AbckitArktsImportDescriptor *idArkTS = g_implArktsI->coreImportDescriptorToArktsImportDescriptor(id);
189 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
190 AbckitCoreImportDescriptor *idCast = g_implArktsI->arktsImportDescriptorToCoreImportDescriptor(idArkTS);
191 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
192 EXPECT_EQ(id, idCast);
193 *reinterpret_cast<bool *>(data) = true;
194 return true;
195 });
196 ASSERT_TRUE(isVisitedAny);
197 }
198
ProcessImportDescriptorNeg(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)199 static void ProcessImportDescriptorNeg(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
200 {
201 AbckitCoreModule *module = g_implI->functionGetModule(method);
202 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
203 bool isVisitedAny = false;
204 g_implI->moduleEnumerateImports(module, &isVisitedAny, [](AbckitCoreImportDescriptor *id, void *data) {
205 AbckitArktsImportDescriptor *idArk = g_implArktsI->coreImportDescriptorToArktsImportDescriptor(id);
206 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_WRONG_TARGET);
207 EXPECT_EQ(idArk, nullptr);
208 *reinterpret_cast<bool *>(data) = true;
209 return true;
210 });
211 ASSERT_TRUE(isVisitedAny);
212 }
213
ProcessExportDescriptor(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)214 static void ProcessExportDescriptor(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
215 {
216 AbckitCoreModule *module = g_implI->functionGetModule(method);
217 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
218 bool isVisitedAny = false;
219 g_implI->moduleEnumerateExports(module, &isVisitedAny, [](AbckitCoreExportDescriptor *ed, void *data) {
220 AbckitArktsExportDescriptor *edArkTS = g_implArktsI->coreExportDescriptorToArktsExportDescriptor(ed);
221 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
222 AbckitCoreExportDescriptor *edCast = g_implArktsI->arktsExportDescriptorToCoreExportDescriptor(edArkTS);
223 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
224 EXPECT_EQ(ed, edCast);
225 *reinterpret_cast<bool *>(data) = true;
226 return true;
227 });
228 ASSERT_TRUE(isVisitedAny);
229 }
230
ProcessExportDescriptorNeg(AbckitFile *,AbckitCoreFunction * method,AbckitGraph *)231 static void ProcessExportDescriptorNeg(AbckitFile * /*file*/, AbckitCoreFunction *method, AbckitGraph * /*graph*/)
232 {
233 AbckitCoreModule *module = g_implI->functionGetModule(method);
234 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
235 bool isVisitedAny = false;
236 g_implI->moduleEnumerateExports(module, &isVisitedAny, [](AbckitCoreExportDescriptor *ed, void *data) {
237 AbckitArktsExportDescriptor *edArkTS = g_implArktsI->coreExportDescriptorToArktsExportDescriptor(ed);
238 EXPECT_EQ(g_impl->getLastError(), ABCKIT_STATUS_WRONG_TARGET);
239 EXPECT_EQ(edArkTS, nullptr);
240 *reinterpret_cast<bool *>(data) = true;
241 return true;
242 });
243 ASSERT_TRUE(isVisitedAny);
244 }
245
246 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsAnnotationElementToCoreAnnotationElement, abc-kind=ArkTS2,
247 // category=positive
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsAnnotationElementToCoreAnnotationElement)248 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsAnnotationElementToCoreAnnotationElement)
249 {
250 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
251 ProcessAnnotationElement);
252 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
253 }
254
255 // Test: test-kind=api, api=ArktsInspectApiImpl::coreAnnotationElementToArktsAnnotationElement, abc-kind=ArkTS2,
256 // category=positive
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreAnnotationElementToArktsAnnotationElement)257 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreAnnotationElementToArktsAnnotationElement)
258 {
259 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
260 ProcessAnnotationElement);
261 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
262 }
263
264 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsAnnotationToCoreAnnotation, abc-kind=ArkTS2, category=positive,
265 // extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsAnnotationToCoreAnnotation)266 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsAnnotationToCoreAnnotation)
267 {
268 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
269 ProcessAnnotation);
270 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
271 }
272
273 // Test: test-kind=api, api=ArktsInspectApiImpl::coreAnnotationToArktsAnnotation, abc-kind=ArkTS2, category=positive,
274 // extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreAnnotationToArktsAnnotation)275 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreAnnotationToArktsAnnotation)
276 {
277 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
278 ProcessAnnotation);
279 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
280 }
281
282 // Test: test-kind=api, api=ArktsInspectApiImpl::coreAnnotationInterfaceToArktsAnnotationInterface, abc-kind=ArkTS2,
283 // category=positive
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreAnnotationInterfaceToArktsAnnotationInterface)284 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreAnnotationInterfaceToArktsAnnotationInterface)
285 {
286 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
287 ProcessAnnotationInterface);
288 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
289 }
290
291 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsAnnotationInterfaceToCoreAnnotationInterface, abc-kind=ArkTS2,
292 // category=positive
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsAnnotationInterfaceToCoreAnnotationInterface)293 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsAnnotationInterfaceToCoreAnnotationInterface)
294 {
295 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
296 ProcessAnnotationInterface);
297 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
298 }
299
300 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsAnnotationInterfaceFieldToCoreAnnotationInterfaceField,
301 // abc-kind=ArkTS2, category=positive, extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsAnnotationInterfaceFieldToCoreAnnotationInterfaceField)302 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsAnnotationInterfaceFieldToCoreAnnotationInterfaceField)
303 {
304 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
305 ProcessAnnotationInterfaceField);
306 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
307 }
308
309 // Test: test-kind=api, api=ArktsInspectApiImpl::coreAnnotationInterfaceFieldToArktsAnnotationInterfaceField,
310 // abc-kind=ArkTS2, category=positive, extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreAnnotationInterfaceFieldToArktsAnnotationInterfaceField)311 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreAnnotationInterfaceFieldToArktsAnnotationInterfaceField)
312 {
313 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
314 ProcessAnnotationInterfaceField);
315 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
316 }
317
318 // Test: test-kind=api, api=ArktsInspectApiImpl::coreClassToArktsClass, abc-kind=ArkTS2, category=positive, extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreClassToArktsClass)319 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreClassToArktsClass)
320 {
321 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
322 ProcessClass);
323 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
324 }
325
326 // Test: test-kind=api, api=ArktsInspectApiImpl::coreClassToArktsClass, abc-kind=ArkTS2, category=negative
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreClassToArktsClassNeg)327 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreClassToArktsClassNeg)
328 {
329 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/js/inspect_api/api_casts/JSapi_casts.abc", "foo",
330 ProcessClassNeg);
331 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
332 }
333
334 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsClassToCoreClass, abc-kind=ArkTS2, category=positive, extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsClassToCoreClass)335 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsClassToCoreClass)
336 {
337 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
338 ProcessClass);
339 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
340 }
341
342 // Test: test-kind=api, api=ArktsInspectApiImpl::coreFunctionToArktsFunction, abc-kind=ArkTS2, category=positive,
343 // extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreFunctionToArktsFunction)344 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreFunctionToArktsFunction)
345 {
346 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
347 ProcessMethod);
348 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
349 }
350
351 // Test: test-kind=api, api=ArktsInspectApiImpl::coreFunctionToArktsFunction, abc-kind=ArkTS2, category=negative
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreFunctionToArktsFunctionNeg)352 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreFunctionToArktsFunctionNeg)
353 {
354 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/js/inspect_api/api_casts/JSapi_casts.abc", "foo",
355 ProcessMethodNeg);
356 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
357 }
358
359 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsFunctionToCoreFunction, abc-kind=ArkTS2, category=positive,
360 // extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsFunctionToCoreFunction)361 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsFunctionToCoreFunction)
362 {
363 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
364 ProcessMethod);
365 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
366 }
367
368 // Test: test-kind=api, api=ArktsInspectApiImpl::coreModuleToArktsModule, abc-kind=ArkTS2, category=positive,
369 // extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreModuleToArktsModule)370 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreModuleToArktsModule)
371 {
372 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
373 ProcessModule);
374 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
375 }
376
377 // Test: test-kind=api, api=ArktsInspectApiImpl::coreModuleToArktsModule, abc-kind=ArkTS2, category=negative
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreModuleToArktsModuleNeg)378 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreModuleToArktsModuleNeg)
379 {
380 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/js/inspect_api/api_casts/JSapi_casts.abc", "foo",
381 ProcessModuleNeg);
382 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
383 }
384
385 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsModuleToCoreModule, abc-kind=ArkTS2, category=positive,
386 // extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsModuleToCoreModule)387 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsModuleToCoreModule)
388 {
389 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
390 ProcessModule);
391 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
392 }
393
394 // Test: test-kind=api, api=ArktsInspectApiImpl::coreNamespaceToArktsNamespace, abc-kind=ArkTS2, category=positive,
395 // extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreNamespaceToArktsNamespace)396 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreNamespaceToArktsNamespace)
397 {
398 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
399 ProcessNamespace);
400 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
401 }
402
403 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsNamespaceToCoreNamespace, abc-kind=ArkTS2, category=positive,
404 // extension=c
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsNamespaceToCoreNamespace)405 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsNamespaceToCoreNamespace)
406 {
407 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
408 ProcessNamespace);
409 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
410 }
411
412 // Test: test-kind=api, api=ArktsInspectApiImpl::coreImportDescriptorToArktsImportDescriptor, abc-kind=ArkTS2,
413 // category=positive
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreImportDescriptorToArktsImportDescriptor)414 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreImportDescriptorToArktsImportDescriptor)
415 {
416 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
417 ProcessImportDescriptor);
418 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
419 }
420
421 // Test: test-kind=api, api=ArktsInspectApiImpl::coreImportDescriptorToArktsImportDescriptor, abc-kind=ArkTS2,
422 // category=negative
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreImportDescriptorToArktsImportDescriptorNeg)423 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreImportDescriptorToArktsImportDescriptorNeg)
424 {
425 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/js/inspect_api/api_casts/JSapi_casts.abc", "foo",
426 ProcessImportDescriptorNeg);
427 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
428 }
429
430 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsImportDescriptorToCoreImportDescriptor, abc-kind=ArkTS2,
431 // category=positive
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsImportDescriptorToCoreImportDescriptor)432 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsImportDescriptorToCoreImportDescriptor)
433 {
434 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
435 ProcessImportDescriptor);
436 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
437 }
438
439 // Test: test-kind=api, api=ArktsInspectApiImpl::coreExportDescriptorToArktsExportDescriptor, abc-kind=ArkTS2,
440 // category=positive
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreExportDescriptorToArktsExportDescriptor)441 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreExportDescriptorToArktsExportDescriptor)
442 {
443 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
444 ProcessExportDescriptor);
445 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
446 }
447
448 // Test: test-kind=api, api=ArktsInspectApiImpl::coreExportDescriptorToArktsExportDescriptor, abc-kind=ArkTS2,
449 // category=negative
TEST_F(LibAbcKitArkTSInspectApiCasts,CoreExportDescriptorToArktsExportDescriptorNeg)450 TEST_F(LibAbcKitArkTSInspectApiCasts, CoreExportDescriptorToArktsExportDescriptorNeg)
451 {
452 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/js/inspect_api/api_casts/JSapi_casts.abc", "foo",
453 ProcessExportDescriptorNeg);
454 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
455 }
456
457 // Test: test-kind=api, api=ArktsInspectApiImpl::arktsExportDescriptorToCoreExportDescriptor, abc-kind=ArkTS2,
458 // category=positive
TEST_F(LibAbcKitArkTSInspectApiCasts,ArktsExportDescriptorToCoreExportDescriptor)459 TEST_F(LibAbcKitArkTSInspectApiCasts, ArktsExportDescriptorToCoreExportDescriptor)
460 {
461 helpers::InspectMethod(ABCKIT_ABC_DIR "ut/extensions/arkts/inspect_api/api_casts/api_casts.abc", "foo",
462 ProcessExportDescriptor);
463 ASSERT_EQ(g_impl->getLastError(), ABCKIT_STATUS_NO_ERROR);
464 }
465
466 } // namespace libabckit::test
467