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 "include/cpp/headers/core/annotation.h"
18 #include "tests/mock/check_mock.h"
19 #include "src/mock/mock_values.h"
20 #include "tests/mock/cpp_helpers_mock.h"
21 #include <gtest/gtest.h>
22
23 namespace libabckit::cpp_test {
24
25 class LibAbcKitCppMockCoreTestFunction : public ::testing::Test {};
26
27 // Test: test-kind=mock, api=Function::CreateGraph, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_CreateGraph)28 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_CreateGraph)
29 {
30 ASSERT_TRUE(CheckMockedStackEmpty());
31 {
32 abckit::File f(DEFAULT_PATH);
33 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
34 abckit::mock::helpers::GetMockCoreFunction(f).CreateGraph();
35 ASSERT_TRUE(CheckMockedApi("DestroyGraph"));
36 ASSERT_TRUE(CheckMockedApi("CreateGraphFromFunction"));
37 }
38 ASSERT_TRUE(CheckMockedApi("CloseFile"));
39 ASSERT_TRUE(CheckMockedStackEmpty());
40 }
41
42 // Test: test-kind=mock, api=Function::SetGraph, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_SetGraph)43 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_SetGraph)
44 {
45 ASSERT_TRUE(CheckMockedStackEmpty());
46 {
47 abckit::File f(DEFAULT_PATH);
48 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
49 abckit::mock::helpers::GetMockCoreFunction(f).SetGraph(abckit::mock::helpers::GetMockGraph(f));
50 ASSERT_TRUE(CheckMockedApi("DestroyGraph"));
51 ASSERT_TRUE(CheckMockedApi("FunctionSetGraph"));
52 }
53 ASSERT_TRUE(CheckMockedApi("CloseFile"));
54 ASSERT_TRUE(CheckMockedStackEmpty());
55 }
56
57 // Test: test-kind=mock, api=Function::GetName, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_GetName)58 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_GetName)
59 {
60 ASSERT_TRUE(CheckMockedStackEmpty());
61 {
62 abckit::File f(DEFAULT_PATH);
63 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
64 abckit::mock::helpers::GetMockCoreFunction(f).GetName();
65 ASSERT_TRUE(CheckMockedApi("AbckitStringToString"));
66 ASSERT_TRUE(CheckMockedApi("FunctionGetName"));
67 }
68 ASSERT_TRUE(CheckMockedApi("CloseFile"));
69 ASSERT_TRUE(CheckMockedStackEmpty());
70 }
71
72 // Test: test-kind=mock, api=Function::GetFile, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_GetFile)73 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_GetFile)
74 {
75 ASSERT_TRUE(CheckMockedStackEmpty());
76 {
77 abckit::File f(DEFAULT_PATH);
78 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
79 abckit::mock::helpers::GetMockCoreFunction(f).GetFile();
80 }
81 ASSERT_TRUE(CheckMockedApi("CloseFile"));
82 ASSERT_TRUE(CheckMockedStackEmpty());
83 }
84
85 // Test: test-kind=mock, api=Function::GetAnnotations, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_GetAnnotations)86 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_GetAnnotations)
87 {
88 ASSERT_TRUE(CheckMockedStackEmpty());
89 {
90 abckit::File f(DEFAULT_PATH);
91 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
92 abckit::mock::helpers::GetMockCoreFunction(f).GetAnnotations();
93 ASSERT_TRUE(CheckMockedApi("FunctionEnumerateAnnotations"));
94 }
95 ASSERT_TRUE(CheckMockedApi("CloseFile"));
96 ASSERT_TRUE(CheckMockedStackEmpty());
97 }
98
99 // Test: test-kind=mock, api=Function::IsStatic, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_IsStatic)100 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_IsStatic)
101 {
102 ASSERT_TRUE(CheckMockedStackEmpty());
103 {
104 abckit::File f(DEFAULT_PATH);
105 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
106 abckit::mock::helpers::GetMockCoreFunction(f).IsStatic();
107 ASSERT_TRUE(CheckMockedApi("FunctionIsStatic"));
108 }
109 ASSERT_TRUE(CheckMockedApi("CloseFile"));
110 ASSERT_TRUE(CheckMockedStackEmpty());
111 }
112
113 // Test: test-kind=mock, api=Function::GetModule, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_GetModule)114 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_GetModule)
115 {
116 ASSERT_TRUE(CheckMockedStackEmpty());
117 {
118 abckit::File f(DEFAULT_PATH);
119 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
120 abckit::mock::helpers::GetMockCoreFunction(f).GetModule();
121 ASSERT_TRUE(CheckMockedApi("FunctionGetModule"));
122 }
123 ASSERT_TRUE(CheckMockedApi("CloseFile"));
124 ASSERT_TRUE(CheckMockedStackEmpty());
125 }
126
127 // Test: test-kind=mock, api=Function::GetParentClass, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_GetParentClass)128 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_GetParentClass)
129 {
130 ASSERT_TRUE(CheckMockedStackEmpty());
131 {
132 abckit::File f(DEFAULT_PATH);
133 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
134 abckit::mock::helpers::GetMockCoreFunction(f).GetParentClass();
135 ASSERT_TRUE(CheckMockedApi("FunctionGetParentClass"));
136 }
137 ASSERT_TRUE(CheckMockedApi("CloseFile"));
138 ASSERT_TRUE(CheckMockedStackEmpty());
139 }
140
141 // Test: test-kind=mock, api=Function::GetParentFunction, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_GetParentFunction)142 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_GetParentFunction)
143 {
144 ASSERT_TRUE(CheckMockedStackEmpty());
145 {
146 abckit::File f(DEFAULT_PATH);
147 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
148 abckit::mock::helpers::GetMockCoreFunction(f).GetParentFunction();
149 ASSERT_TRUE(CheckMockedApi("FunctionGetParentFunction"));
150 }
151 ASSERT_TRUE(CheckMockedApi("CloseFile"));
152 ASSERT_TRUE(CheckMockedStackEmpty());
153 }
154
155 // Test: test-kind=mock, api=Function::GetParentNamespace, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_GetParentNamespace)156 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_GetParentNamespace)
157 {
158 ASSERT_TRUE(CheckMockedStackEmpty());
159 {
160 abckit::File f(DEFAULT_PATH);
161 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
162 abckit::mock::helpers::GetMockCoreFunction(f).GetParentNamespace();
163 ASSERT_TRUE(CheckMockedApi("FunctionGetParentNamespace"));
164 }
165 ASSERT_TRUE(CheckMockedApi("CloseFile"));
166 ASSERT_TRUE(CheckMockedStackEmpty());
167 }
168
169 // Test: test-kind=mock, api=Function::EnumerateNestedFunctions, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_EnumerateNestedFunctions)170 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_EnumerateNestedFunctions)
171 {
172 ASSERT_TRUE(CheckMockedStackEmpty());
173 {
174 abckit::File f(DEFAULT_PATH);
175 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
176 abckit::mock::helpers::GetMockCoreFunction(f).EnumerateNestedFunctions(DEFAULT_LAMBDA(abckit::core::Function));
177 ASSERT_TRUE(CheckMockedApi("FunctionEnumerateNestedFunctions"));
178 }
179 ASSERT_TRUE(CheckMockedApi("CloseFile"));
180 ASSERT_TRUE(CheckMockedStackEmpty());
181 }
182
183 // Test: test-kind=mock, api=Function::EnumerateNestedClasses, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_EnumerateNestedClasses)184 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_EnumerateNestedClasses)
185 {
186 ASSERT_TRUE(CheckMockedStackEmpty());
187 {
188 abckit::File f(DEFAULT_PATH);
189 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
190 abckit::mock::helpers::GetMockCoreFunction(f).EnumerateNestedClasses(DEFAULT_LAMBDA(abckit::core::Class));
191 ASSERT_TRUE(CheckMockedApi("FunctionEnumerateNestedClasses"));
192 }
193 ASSERT_TRUE(CheckMockedApi("CloseFile"));
194 ASSERT_TRUE(CheckMockedStackEmpty());
195 }
196
197 // Test: test-kind=mock, api=Function::EnumerateAnnotations, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_EnumerateAnnotations)198 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_EnumerateAnnotations)
199 {
200 ASSERT_TRUE(CheckMockedStackEmpty());
201 {
202 abckit::File f(DEFAULT_PATH);
203 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
204 abckit::mock::helpers::GetMockCoreFunction(f).EnumerateAnnotations(DEFAULT_LAMBDA(abckit::core::Annotation));
205 ASSERT_TRUE(CheckMockedApi("FunctionEnumerateAnnotations"));
206 }
207 ASSERT_TRUE(CheckMockedApi("CloseFile"));
208 ASSERT_TRUE(CheckMockedStackEmpty());
209 }
210
211 // Test: test-kind=mock, api=Function::IsCtor, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_IsCtor)212 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_IsCtor)
213 {
214 ASSERT_TRUE(CheckMockedStackEmpty());
215 {
216 abckit::File f(DEFAULT_PATH);
217 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
218 abckit::mock::helpers::GetMockCoreFunction(f).IsCtor();
219 ASSERT_TRUE(CheckMockedApi("FunctionIsCtor"));
220 }
221 ASSERT_TRUE(CheckMockedApi("CloseFile"));
222 ASSERT_TRUE(CheckMockedStackEmpty());
223 }
224
225 // Test: test-kind=mock, api=Function::IsAnonymous, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockCoreTestFunction,Function_IsAnonymous)226 TEST_F(LibAbcKitCppMockCoreTestFunction, Function_IsAnonymous)
227 {
228 ASSERT_TRUE(CheckMockedStackEmpty());
229 {
230 abckit::File f(DEFAULT_PATH);
231 ASSERT_TRUE(CheckMockedApi("OpenAbc"));
232 abckit::mock::helpers::GetMockCoreFunction(f).IsAnonymous();
233 ASSERT_TRUE(CheckMockedApi("FunctionIsAnonymous"));
234 }
235 ASSERT_TRUE(CheckMockedApi("CloseFile"));
236 ASSERT_TRUE(CheckMockedStackEmpty());
237 }
238
239 } // namespace libabckit::cpp_test