1 /*
2 * Copyright (c) 2022 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 "ast/ast_interface_type.h"
18 #include "ast/ast_module.h"
19 #include "ast/ast_namespace.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23 using namespace OHOS::Idl;
24
25 namespace OHOS {
26 namespace idl {
27 class AstModuleUnitTest : public testing::Test {
28 public:
AstModuleUnitTest()29 AstModuleUnitTest() {}
30
~AstModuleUnitTest()31 virtual ~AstModuleUnitTest() {}
32
33 static void SetUpTestCase();
34
35 static void TearDownTestCase();
36
37 void SetUp();
38
39 void TearDown();
40 };
41
SetUpTestCase()42 void AstModuleUnitTest::SetUpTestCase() {}
43
TearDownTestCase()44 void AstModuleUnitTest::TearDownTestCase() {}
45
SetUp()46 void AstModuleUnitTest::SetUp() {}
47
TearDown()48 void AstModuleUnitTest::TearDown() {}
49
50 /*
51 * @tc.name: GetParameterTest_0100
52 * @tc.desc: test GetParameter in AstModuleUnitTest.
53 * @tc.type: FUNC
54 * @tc.require:
55 */
56 HWTEST_F(AstModuleUnitTest, GetNamespaceTest_0100, Function | MediumTest | Level1)
57 {
58 GTEST_LOG_(INFO)
59 << "AstModuleUnitTest, GetNamespaceTest_0100, TestSize.Level1";
60 AutoPtr<ASTModule> module = new ASTModule();
61 size_t index = 3;
62 AutoPtr<ASTNamespace> result = module->GetNamespace(index);
63
64 EXPECT_EQ(result, nullptr);
65 }
66
67 /*
68 * @tc.name: GetInterfaceTest_0100
69 * @tc.desc: test GetInterface in AstModuleUnitTest.
70 * @tc.type: FUNC
71 * @tc.require:
72 */
73 HWTEST_F(AstModuleUnitTest, GetInterfaceTest_0100, Function | MediumTest | Level1)
74 {
75 GTEST_LOG_(INFO)
76 << "AstModuleUnitTest, GetInterfaceTest_0100, TestSize.Level1";
77 AutoPtr<ASTModule> module = new ASTModule();
78 size_t index = 3;
79 AutoPtr<ASTInterfaceType> result = module->GetInterface(index);
80
81 EXPECT_EQ(result, nullptr);
82 }
83
84 /*
85 * @tc.name: IndexOfTest_0100
86 * @tc.desc: test IndexOf in AstModuleUnitTest.
87 * @tc.type: FUNC
88 * @tc.require:
89 */
90 HWTEST_F(AstModuleUnitTest, IndexOfTest_0100, Function | MediumTest | Level1)
91 {
92 GTEST_LOG_(INFO)
93 << "AstModuleUnitTest, IndexOfTest_0100, TestSize.Level1";
94 AutoPtr<ASTModule> module = new ASTModule();
95 ASTInterfaceType* interface = new ASTInterfaceType();
96 int result = module->IndexOf(interface);
97
98 EXPECT_EQ(result, -1);
99 }
100
101 /*
102 * @tc.name: GetSequenceableTest_0100
103 * @tc.desc: test GetSequenceable in AstModuleUnitTest.
104 * @tc.type: FUNC
105 * @tc.require:
106 */
107 HWTEST_F(AstModuleUnitTest, GetSequenceableTest_0100, Function | MediumTest | Level1)
108 {
109 GTEST_LOG_(INFO)
110 << "AstModuleUnitTest, GetSequenceableTest_0100, TestSize.Level1";
111 AutoPtr<ASTModule> module = new ASTModule();
112 size_t index = 3;
113 AutoPtr<ASTSequenceableType> result = module->GetSequenceable(index);
114
115 EXPECT_EQ(result, nullptr);
116 }
117
118 /*
119 * @tc.name: IndexOfTest_0200
120 * @tc.desc: test IndexOf in AstModuleUnitTest.
121 * @tc.type: FUNC
122 * @tc.require:
123 */
124 HWTEST_F(AstModuleUnitTest, IndexOfTest_0200, Function | MediumTest | Level1)
125 {
126 GTEST_LOG_(INFO)
127 << "AstModuleUnitTest, IndexOfTest_0200, TestSize.Level1";
128 AutoPtr<ASTModule> module = new ASTModule();
129 ASTSequenceableType* sequenceable = new ASTSequenceableType();
130 int result = module->IndexOf(sequenceable);
131
132 EXPECT_EQ(result, -1);
133 }
134
135 /*
136 * @tc.name: FindTypeTest_0100
137 * @tc.desc: test IndexOf in AstModuleUnitTest.
138 * @tc.type: FUNC
139 * @tc.require:
140 */
141 HWTEST_F(AstModuleUnitTest, FindTypeTest_0100, Function | MediumTest | Level1)
142 {
143 GTEST_LOG_(INFO)
144 << "AstModuleUnitTest, FindTypeTest_0100, TestSize.Level1";
145 AutoPtr<ASTModule> module = new ASTModule();
146 String typeName = "";
147 AutoPtr<ASTType> result = module->FindType(typeName);
148
149 EXPECT_EQ(result, nullptr);
150 }
151
152 /*
153 * @tc.name: IndexOfTest_0300
154 * @tc.desc: test IndexOf in AstModuleUnitTest.
155 * @tc.type: FUNC
156 * @tc.require:
157 */
158 HWTEST_F(AstModuleUnitTest, IndexOfTest_0300, Function | MediumTest | Level1)
159 {
160 GTEST_LOG_(INFO)
161 << "AstModuleUnitTest, IndexOfTest_0300, TestSize.Level1";
162 AutoPtr<ASTModule> module = new ASTModule();
163 AutoPtr<ASTInterfaceType> interfaceType = new ASTInterfaceType();
164 int result = module->IndexOf(interfaceType);
165
166 EXPECT_EQ(result, -1);
167 }
168
169 /*
170 * @tc.name: IsValidTest_0100
171 * @tc.desc: test IsValid in AstModuleUnitTest.
172 * @tc.type: FUNC
173 * @tc.require:
174 */
175 HWTEST_F(AstModuleUnitTest, IsValidTest_0100, Function | MediumTest | Level1)
176 {
177 GTEST_LOG_(INFO)
178 << "AstModuleUnitTest, IsValidTest_0100, TestSize.Level1";
179 AutoPtr<ASTModule> module = new ASTModule();
180 bool result = module->IsValid();
181
182 EXPECT_EQ(result, false);
183 }
184
185 /*
186 * @tc.name: DumpTest_0100
187 * @tc.desc: test Dump in AstModuleUnitTest.
188 * @tc.type: FUNC
189 * @tc.require:
190 */
191 HWTEST_F(AstModuleUnitTest, DumpTest_0100, Function | MediumTest | Level1)
192 {
193 GTEST_LOG_(INFO)
194 << "AstModuleUnitTest, DumpTest_0100, TestSize.Level1";
195 AutoPtr<ASTModule> module = new ASTModule();
196 AutoPtr<ASTInterfaceType> interfaceType = new ASTInterfaceType();
197
198 String prefix = "prefix";
199 String idlFile = "idlFile";
200
201 ASTSequenceableType* sequenceable = new ASTSequenceableType();
202 ASTInterfaceType* interface = new ASTInterfaceType();
203 interface->SetExternal(true);
204
205 module->SetIdlFile(idlFile);
206 module->AddSequenceable(sequenceable);
207 module->AddInterface(interface);
208
209 String result = module->Dump(prefix);
210 String expectResult = prefix + "Module[" + "name: " + " " + "file: " + idlFile + "]\n"
211 + " sequenceable " + ";\n" + "\n" + " interface " + ";\n" + "\n";
212
213 ASSERT_STREQ(result, expectResult);
214 }
215 } // namespace idl
216 } // namespace OHOS
217