• 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 "tests/mock/check_mock.h"
18 #include "src/mock/mock_values.h"
19 #include "tests/mock/cpp_helpers_mock.h"
20 #include <gtest/gtest.h>
21 
22 namespace libabckit::cpp_test {
23 
24 class LibAbcKitCppMockArktsTestModule : public ::testing::Test {};
25 
26 // Test: test-kind=mock, api=Module::AddImportFromArktsV1ToArktsV1, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockArktsTestModule,Module_AddImportFromArktsV1ToArktsV1)27 TEST_F(LibAbcKitCppMockArktsTestModule, Module_AddImportFromArktsV1ToArktsV1)
28 {
29     ASSERT_TRUE(CheckMockedStackEmpty());
30     {
31         abckit::File f(DEFAULT_PATH);
32         ASSERT_TRUE(CheckMockedApi("OpenAbc"));
33         abckit::mock::helpers::GetMockArktsModule(f).AddImportFromArktsV1ToArktsV1(
34             abckit::mock::helpers::GetMockArktsModule(f), DEFAULT_CONST_CHAR, DEFAULT_CONST_CHAR);
35         ASSERT_TRUE(CheckMockedApi("CoreImportDescriptorToArktsImportDescriptor"));
36         ASSERT_TRUE(CheckMockedApi("ArktsImportDescriptorToCoreImportDescriptor"));
37         ASSERT_TRUE(CheckMockedApi("ModuleAddImportFromArktsV1ToArktsV1"));
38         ASSERT_TRUE(CheckMockedApi("CoreModuleToArktsModule"));
39         ASSERT_TRUE(CheckMockedApi("CoreModuleToArktsModule"));
40     }
41     ASSERT_TRUE(CheckMockedApi("CloseFile"));
42     ASSERT_TRUE(CheckMockedStackEmpty());
43 }
44 
45 // Test: test-kind=mock, api=Module::RemoveImport, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockArktsTestModule,Module_RemoveImport)46 TEST_F(LibAbcKitCppMockArktsTestModule, Module_RemoveImport)
47 {
48     ASSERT_TRUE(CheckMockedStackEmpty());
49     {
50         abckit::File f(DEFAULT_PATH);
51         ASSERT_TRUE(CheckMockedApi("OpenAbc"));
52         auto id = abckit::mock::helpers::GetMockArktsImportDescriptor(f);
53         abckit::mock::helpers::GetMockArktsModule(f).RemoveImport(id);
54         ASSERT_TRUE(CheckMockedApi("ModuleRemoveImport"));
55         ASSERT_TRUE(CheckMockedApi("CoreModuleToArktsModule"));
56         ASSERT_TRUE(CheckMockedApi("CoreImportDescriptorToArktsImportDescriptor"));
57     }
58     ASSERT_TRUE(CheckMockedApi("CloseFile"));
59     ASSERT_TRUE(CheckMockedStackEmpty());
60 }
61 
62 // Test: test-kind=mock, api=Module::AddExportFromArktsV1ToArktsV1, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockArktsTestModule,Module_AddExportFromArktsV1ToArktsV1)63 TEST_F(LibAbcKitCppMockArktsTestModule, Module_AddExportFromArktsV1ToArktsV1)
64 {
65     ASSERT_TRUE(CheckMockedStackEmpty());
66     {
67         abckit::File f(DEFAULT_PATH);
68         ASSERT_TRUE(CheckMockedApi("OpenAbc"));
69         auto m = abckit::mock::helpers::GetMockArktsModule(f);
70         abckit::mock::helpers::GetMockArktsModule(f).AddExportFromArktsV1ToArktsV1(m, DEFAULT_CONST_CHAR,
71                                                                                    DEFAULT_CONST_CHAR);
72         ASSERT_TRUE(CheckMockedApi("CoreExportDescriptorToArktsExportDescriptor"));
73         ASSERT_TRUE(CheckMockedApi("ArktsExportDescriptorToCoreExportDescriptor"));
74         ASSERT_TRUE(CheckMockedApi("ModuleAddExportFromArktsV1ToArktsV1"));
75         ASSERT_TRUE(CheckMockedApi("CoreModuleToArktsModule"));
76         ASSERT_TRUE(CheckMockedApi("CoreModuleToArktsModule"));
77     }
78     ASSERT_TRUE(CheckMockedApi("CloseFile"));
79     ASSERT_TRUE(CheckMockedStackEmpty());
80 }
81 
82 // Test: test-kind=mock, api=Module::RemoveExport, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockArktsTestModule,Module_RemoveExport)83 TEST_F(LibAbcKitCppMockArktsTestModule, Module_RemoveExport)
84 {
85     ASSERT_TRUE(CheckMockedStackEmpty());
86     {
87         abckit::File f(DEFAULT_PATH);
88         ASSERT_TRUE(CheckMockedApi("OpenAbc"));
89         auto ed = abckit::mock::helpers::GetMockArktsExportDescriptor(f);
90         abckit::mock::helpers::GetMockArktsModule(f).RemoveExport(ed);
91         ASSERT_TRUE(CheckMockedApi("ModuleRemoveExport"));
92         ASSERT_TRUE(CheckMockedApi("CoreModuleToArktsModule"));
93         ASSERT_TRUE(CheckMockedApi("CoreExportDescriptorToArktsExportDescriptor"));
94     }
95     ASSERT_TRUE(CheckMockedApi("CloseFile"));
96     ASSERT_TRUE(CheckMockedStackEmpty());
97 }
98 
99 // Test: test-kind=mock, api=Module::AddAnnotationInterface, abc-kind=ArkTS1, category=internal, extension=cpp
TEST_F(LibAbcKitCppMockArktsTestModule,Module_AddAnnotationInterface)100 TEST_F(LibAbcKitCppMockArktsTestModule, Module_AddAnnotationInterface)
101 {
102     ASSERT_TRUE(CheckMockedStackEmpty());
103     {
104         abckit::File f(DEFAULT_PATH);
105         ASSERT_TRUE(CheckMockedApi("OpenAbc"));
106         abckit::mock::helpers::GetMockArktsModule(f).AddAnnotationInterface(DEFAULT_CONST_CHAR);
107         ASSERT_TRUE(CheckMockedApi("CoreAnnotationInterfaceToArktsAnnotationInterface"));
108         ASSERT_TRUE(CheckMockedApi("ArktsAnnotationInterfaceToCoreAnnotationInterface"));
109         ASSERT_TRUE(CheckMockedApi("ModuleAddAnnotationInterface"));
110         ASSERT_TRUE(CheckMockedApi("CoreModuleToArktsModule"));
111     }
112     ASSERT_TRUE(CheckMockedApi("CloseFile"));
113     ASSERT_TRUE(CheckMockedStackEmpty());
114 }
115 
116 }  // namespace libabckit::cpp_test