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