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 "../../src/mock/abckit_mock.h"
17 #include "../../src/mock/mock_values.h"
18
19 #include "../include/c/extensions/arkts/metadata_arkts.h"
20 #include "../../include/c/metadata_core.h"
21
22 #include <cstring>
23 #include <gtest/gtest.h>
24
25 namespace libabckit::mock::arkts_inspect_api {
26
27 // NOLINTBEGIN(readability-identifier-naming)
28
ArktsModuleToCoreModule(AbckitArktsModule * m)29 AbckitCoreModule *ArktsModuleToCoreModule(AbckitArktsModule *m)
30 {
31 g_calledFuncs.push(__func__);
32
33 EXPECT_TRUE(m == DEFAULT_ARKTS_MODULE);
34 return DEFAULT_CORE_MODULE;
35 }
36
CoreModuleToArktsModule(AbckitCoreModule * m)37 AbckitArktsModule *CoreModuleToArktsModule(AbckitCoreModule *m)
38 {
39 g_calledFuncs.push(__func__);
40
41 EXPECT_TRUE(m == DEFAULT_CORE_MODULE);
42 return DEFAULT_ARKTS_MODULE;
43 }
44
ArktsNamespaceToCoreNamespace(AbckitArktsNamespace * ns)45 AbckitCoreNamespace *ArktsNamespaceToCoreNamespace(AbckitArktsNamespace *ns)
46 {
47 g_calledFuncs.push(__func__);
48
49 EXPECT_TRUE(ns == DEFAULT_NAMESPACE);
50 return DEFAULT_CORE_NAMESPACE;
51 }
52
CoreNamespaceToArktsNamespace(AbckitCoreNamespace * ns)53 AbckitArktsNamespace *CoreNamespaceToArktsNamespace(AbckitCoreNamespace *ns)
54 {
55 g_calledFuncs.push(__func__);
56
57 EXPECT_TRUE(ns == DEFAULT_CORE_NAMESPACE);
58 return DEFAULT_NAMESPACE;
59 }
60
ArktsV1NamespaceGetConstructor(AbckitArktsNamespace * ns)61 AbckitArktsFunction *ArktsV1NamespaceGetConstructor(AbckitArktsNamespace *ns)
62 {
63 g_calledFuncs.push(__func__);
64
65 EXPECT_TRUE(ns == DEFAULT_NAMESPACE);
66 return DEFAULT_ARKTS_FUNCTION;
67 }
68
ArktsImportDescriptorToCoreImportDescriptor(AbckitArktsImportDescriptor * id)69 AbckitCoreImportDescriptor *ArktsImportDescriptorToCoreImportDescriptor(AbckitArktsImportDescriptor *id)
70 {
71 g_calledFuncs.push(__func__);
72
73 EXPECT_TRUE(id == DEFAULT_ARKTS_IMPORT_DESCRIPTOR);
74 return DEFAULT_CORE_IMPORT_DESCRIPTOR;
75 }
76
CoreImportDescriptorToArktsImportDescriptor(AbckitCoreImportDescriptor * id)77 AbckitArktsImportDescriptor *CoreImportDescriptorToArktsImportDescriptor(AbckitCoreImportDescriptor *id)
78 {
79 g_calledFuncs.push(__func__);
80
81 EXPECT_TRUE(id == DEFAULT_CORE_IMPORT_DESCRIPTOR);
82 return DEFAULT_ARKTS_IMPORT_DESCRIPTOR;
83 }
84
ArktsExportDescriptorToCoreExportDescriptor(AbckitArktsExportDescriptor * ed)85 AbckitCoreExportDescriptor *ArktsExportDescriptorToCoreExportDescriptor(AbckitArktsExportDescriptor *ed)
86 {
87 g_calledFuncs.push(__func__);
88
89 EXPECT_TRUE(ed == DEFAULT_ARKTS_EXPORT_DESCRIPTOR);
90 return DEFAULT_CORE_EXPORT_DESCRIPTOR;
91 }
92
CoreExportDescriptorToArktsExportDescriptor(AbckitCoreExportDescriptor * ed)93 AbckitArktsExportDescriptor *CoreExportDescriptorToArktsExportDescriptor(AbckitCoreExportDescriptor *ed)
94 {
95 g_calledFuncs.push(__func__);
96
97 EXPECT_TRUE(ed == DEFAULT_CORE_EXPORT_DESCRIPTOR);
98 return DEFAULT_ARKTS_EXPORT_DESCRIPTOR;
99 }
100
ArktsClassToCoreClass(AbckitArktsClass * klass)101 AbckitCoreClass *ArktsClassToCoreClass(AbckitArktsClass *klass)
102 {
103 g_calledFuncs.push(__func__);
104
105 EXPECT_TRUE(klass == DEFAULT_ARKTS_CLASS);
106 return DEFAULT_CORE_CLASS;
107 }
108
CoreClassToArktsClass(AbckitCoreClass * klass)109 AbckitArktsClass *CoreClassToArktsClass(AbckitCoreClass *klass)
110 {
111 g_calledFuncs.push(__func__);
112
113 EXPECT_TRUE(klass == DEFAULT_CORE_CLASS);
114 return DEFAULT_ARKTS_CLASS;
115 }
116
ArktsFunctionToCoreFunction(AbckitArktsFunction * function)117 AbckitCoreFunction *ArktsFunctionToCoreFunction(AbckitArktsFunction *function)
118 {
119 g_calledFuncs.push(__func__);
120
121 EXPECT_TRUE(function == DEFAULT_ARKTS_FUNCTION);
122 return DEFAULT_CORE_FUNCTION;
123 }
124
CoreFunctionToArktsFunction(AbckitCoreFunction * function)125 AbckitArktsFunction *CoreFunctionToArktsFunction(AbckitCoreFunction *function)
126 {
127 g_calledFuncs.push(__func__);
128
129 EXPECT_TRUE(function == DEFAULT_CORE_FUNCTION);
130 return DEFAULT_ARKTS_FUNCTION;
131 }
132
FunctionIsNative(AbckitArktsFunction * function)133 bool FunctionIsNative(AbckitArktsFunction *function)
134 {
135 g_calledFuncs.push(__func__);
136
137 EXPECT_TRUE(function == DEFAULT_ARKTS_FUNCTION);
138 return DEFAULT_BOOL;
139 }
140
ArktsAnnotationToCoreAnnotation(AbckitArktsAnnotation * anno)141 AbckitCoreAnnotation *ArktsAnnotationToCoreAnnotation(AbckitArktsAnnotation *anno)
142 {
143 g_calledFuncs.push(__func__);
144
145 EXPECT_TRUE(anno == DEFAULT_ANNOTATION);
146 return DEFAULT_CORE_ANNOTATION;
147 }
148
CoreAnnotationToArktsAnnotation(AbckitCoreAnnotation * anno)149 AbckitArktsAnnotation *CoreAnnotationToArktsAnnotation(AbckitCoreAnnotation *anno)
150 {
151 g_calledFuncs.push(__func__);
152
153 EXPECT_TRUE(anno == DEFAULT_CORE_ANNOTATION);
154 return DEFAULT_ANNOTATION;
155 }
156
ArktsAnnotationElementToCoreAnnotationElement(AbckitArktsAnnotationElement * annoElem)157 AbckitCoreAnnotationElement *ArktsAnnotationElementToCoreAnnotationElement(AbckitArktsAnnotationElement *annoElem)
158 {
159 g_calledFuncs.push(__func__);
160
161 EXPECT_TRUE(annoElem == DEFAULT_ANNOTATION_ELEMENT);
162 return DEFAULT_CORE_ANNOTATION_ELEMENT;
163 }
164
CoreAnnotationElementToArktsAnnotationElement(AbckitCoreAnnotationElement * annoElem)165 AbckitArktsAnnotationElement *CoreAnnotationElementToArktsAnnotationElement(AbckitCoreAnnotationElement *annoElem)
166 {
167 g_calledFuncs.push(__func__);
168
169 EXPECT_TRUE(annoElem == DEFAULT_CORE_ANNOTATION_ELEMENT);
170 return DEFAULT_ANNOTATION_ELEMENT;
171 }
172
ArktsAnnotationInterfaceToCoreAnnotationInterface(AbckitArktsAnnotationInterface * annoInterface)173 AbckitCoreAnnotationInterface *ArktsAnnotationInterfaceToCoreAnnotationInterface(
174 AbckitArktsAnnotationInterface *annoInterface)
175 {
176 g_calledFuncs.push(__func__);
177
178 EXPECT_TRUE(annoInterface == DEFAULT_ANNOTATION_INTERFACE);
179 return DEFAULT_CORE_ANNOTATION_INTERFACE;
180 }
181
CoreAnnotationInterfaceToArktsAnnotationInterface(AbckitCoreAnnotationInterface * annoInterface)182 AbckitArktsAnnotationInterface *CoreAnnotationInterfaceToArktsAnnotationInterface(
183 AbckitCoreAnnotationInterface *annoInterface)
184 {
185 g_calledFuncs.push(__func__);
186
187 EXPECT_TRUE(annoInterface == DEFAULT_CORE_ANNOTATION_INTERFACE);
188 return DEFAULT_ANNOTATION_INTERFACE;
189 }
190
ArktsAnnotationInterfaceFieldToCoreAnnotationInterfaceField(AbckitArktsAnnotationInterfaceField * annoInterfaceField)191 AbckitCoreAnnotationInterfaceField *ArktsAnnotationInterfaceFieldToCoreAnnotationInterfaceField(
192 AbckitArktsAnnotationInterfaceField *annoInterfaceField)
193 {
194 g_calledFuncs.push(__func__);
195
196 EXPECT_TRUE(annoInterfaceField == DEFAULT_ANNOTATION_INTERFACE_FIELD);
197 return DEFAULT_CORE_ANNOTATION_INTERFACE_FIELD;
198 }
199
CoreAnnotationInterfaceFieldToArktsAnnotationInterfaceField(AbckitCoreAnnotationInterfaceField * annoInterfaceField)200 AbckitArktsAnnotationInterfaceField *CoreAnnotationInterfaceFieldToArktsAnnotationInterfaceField(
201 AbckitCoreAnnotationInterfaceField *annoInterfaceField)
202 {
203 g_calledFuncs.push(__func__);
204
205 EXPECT_TRUE(annoInterfaceField == DEFAULT_CORE_ANNOTATION_INTERFACE_FIELD);
206 return DEFAULT_ANNOTATION_INTERFACE_FIELD;
207 }
208
209 AbckitArktsInspectApi g_arktsInspectApiImpl = {
210 // ========================================
211 // File
212 // ========================================
213
214 // ========================================
215 // Module
216 // ========================================
217
218 ArktsModuleToCoreModule, CoreModuleToArktsModule,
219
220 /* ========================================
221 * Namespace
222 * ======================================== */
223
224 ArktsNamespaceToCoreNamespace, CoreNamespaceToArktsNamespace, ArktsV1NamespaceGetConstructor,
225
226 // ========================================
227 // ImportDescriptor
228 // ========================================
229
230 ArktsImportDescriptorToCoreImportDescriptor, CoreImportDescriptorToArktsImportDescriptor,
231
232 // ========================================
233 // ExportDescriptor
234 // ========================================
235
236 ArktsExportDescriptorToCoreExportDescriptor, CoreExportDescriptorToArktsExportDescriptor,
237
238 // ========================================
239 // Class
240 // ========================================
241
242 ArktsClassToCoreClass, CoreClassToArktsClass,
243
244 // ========================================
245 // Function
246 // ========================================
247
248 ArktsFunctionToCoreFunction, CoreFunctionToArktsFunction, FunctionIsNative,
249
250 // ========================================
251 // Annotation
252 // ========================================
253
254 ArktsAnnotationToCoreAnnotation, CoreAnnotationToArktsAnnotation,
255
256 // ========================================
257 // AnnotationElement
258 // ========================================
259
260 ArktsAnnotationElementToCoreAnnotationElement, CoreAnnotationElementToArktsAnnotationElement,
261
262 // ========================================
263 // AnnotationInterface
264 // ========================================
265
266 ArktsAnnotationInterfaceToCoreAnnotationInterface, CoreAnnotationInterfaceToArktsAnnotationInterface,
267
268 // ========================================
269 // AnnotationInterfaceField
270 // ========================================
271
272 ArktsAnnotationInterfaceFieldToCoreAnnotationInterfaceField,
273 CoreAnnotationInterfaceFieldToArktsAnnotationInterfaceField,
274
275 // ========================================
276 // Type
277 // ========================================
278
279 // ========================================
280 // Value
281 // ========================================
282
283 // ========================================
284 // String
285 // ========================================
286
287 // ========================================
288 // LiteralArray
289 // ========================================
290
291 // ========================================
292 // Literal
293 // ========================================
294 };
295
296 // NOLINTEND(readability-identifier-naming)
297
298 } // namespace libabckit::mock::arkts_inspect_api
299
AbckitGetMockArktsInspectApiImpl(AbckitApiVersion version)300 AbckitArktsInspectApi const *AbckitGetMockArktsInspectApiImpl([[maybe_unused]] AbckitApiVersion version)
301 {
302 return &libabckit::mock::arkts_inspect_api::g_arktsInspectApiImpl;
303 }
304