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, Hardware
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 
18 #define private public
19 #include "utils/camera3d.h"
20 #undef private
21 #include "utils/matrix.h"
22 #include "utils/scalar.h"
23 
24 using namespace testing;
25 using namespace testing::ext;
26 
27 namespace OHOS {
28 namespace Rosen {
29 namespace Drawing {
30 class Camera3DTest : public testing::Test {
31 public:
32     static void SetUpTestCase();
33     static void TearDownTestCase();
34     void SetUp() override;
35     void TearDown() override;
36 };
37 
SetUpTestCase()38 void Camera3DTest::SetUpTestCase() {}
TearDownTestCase()39 void Camera3DTest::TearDownTestCase() {}
SetUp()40 void Camera3DTest::SetUp() {}
TearDown()41 void Camera3DTest::TearDown() {}
42 
43 /**
44  * @tc.name: Camera3DCreateAndDestroy001
45  * @tc.desc:
46  * @tc.type: FUNC
47  * @tc.require:AR000GGNV3
48  * @tc.author:
49  */
50 HWTEST_F(Camera3DTest, Camera3DCreateAndDestroy001, TestSize.Level1)
51 {
52     // The best way to create Camera3D.
53     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
54     ASSERT_TRUE(camera3d != nullptr);
55 }
56 
57 /**
58  * @tc.name: Camera3DCreateAndDestroy002
59  * @tc.desc:
60  * @tc.type: FUNC
61  * @tc.require:AR000GGNV3
62  * @tc.author:
63  */
64 HWTEST_F(Camera3DTest, Camera3DCreateAndDestroy002, TestSize.Level1)
65 {
66     // The best way to create Camera3D.
67     Camera3D camera3d;
68     ASSERT_TRUE(camera3d.impl_ != nullptr);
69 }
70 
71 /**
72  * @tc.name: Camera3DTranslateTest001
73  * @tc.desc:
74  * @tc.type: FUNC
75  * @tc.require:AR000GGNV3
76  * @tc.author:
77  */
78 HWTEST_F(Camera3DTest, Camera3DTranslateTest001, TestSize.Level1)
79 {
80     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
81     ASSERT_TRUE(camera3d != nullptr);
82     camera3d->Translate(131.5f, 121.0f, 60.0f);
83 }
84 
85 /**
86  * @tc.name: Camera3DTranslateTest002
87  * @tc.desc:
88  * @tc.type: FUNC
89  * @tc.require:AR000GGNV3
90  * @tc.author:
91  */
92 HWTEST_F(Camera3DTest, Camera3DTranslateTest002, TestSize.Level1)
93 {
94     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
95     ASSERT_TRUE(camera3d != nullptr);
96     camera3d->Translate(23.6f, 7.9f, 800.9f);
97 }
98 
99 /**
100  * @tc.name: Camera3DRotateXDegreesTest001
101  * @tc.desc:
102  * @tc.type: FUNC
103  * @tc.require:AR000GGNV3
104  * @tc.author:
105  */
106 HWTEST_F(Camera3DTest, Camera3DRotateXDegreesTest001, TestSize.Level1)
107 {
108     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
109     ASSERT_TRUE(camera3d != nullptr);
110     camera3d->RotateXDegrees(800.6f);
111 }
112 
113 /**
114  * @tc.name: Camera3DRotateXDegreesTest002
115  * @tc.desc:
116  * @tc.type: FUNC
117  * @tc.require:AR000GGNV3
118  * @tc.author:
119  */
120 HWTEST_F(Camera3DTest, Camera3DRotateXDegreesTest002, TestSize.Level1)
121 {
122     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
123     ASSERT_TRUE(camera3d != nullptr);
124     camera3d->RotateXDegrees(300.0f);
125 }
126 
127 /**
128  * @tc.name: Camera3DRotateXDegreesTest003
129  * @tc.desc:
130  * @tc.type: FUNC
131  * @tc.require:AR000GGNV3
132  * @tc.author:
133  */
134 HWTEST_F(Camera3DTest, Camera3DRotateXDegreesTest003, TestSize.Level1)
135 {
136     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
137     ASSERT_TRUE(camera3d != nullptr);
138     camera3d->RotateXDegrees(300.29f);
139 }
140 
141 /**
142  * @tc.name: Camera3DRotateYDegreesTest001
143  * @tc.desc:
144  * @tc.type: FUNC
145  * @tc.require:AR000GGNV3
146  * @tc.author:
147  */
148 HWTEST_F(Camera3DTest, Camera3DRotateYDegreesTest001, TestSize.Level1)
149 {
150     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
151     ASSERT_TRUE(camera3d != nullptr);
152     camera3d->RotateYDegrees(300.29f);
153 }
154 
155 /**
156  * @tc.name: Camera3DRotateYDegreesTest002
157  * @tc.desc:
158  * @tc.type: FUNC
159  * @tc.require:AR000GGNV3
160  * @tc.author:
161  */
162 HWTEST_F(Camera3DTest, Camera3DRotateYDegreesTest002, TestSize.Level1)
163 {
164     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
165     ASSERT_TRUE(camera3d != nullptr);
166     camera3d->RotateYDegrees(300);
167 }
168 
169 /**
170  * @tc.name: Camera3DRotateYDegreesTest003
171  * @tc.desc:
172  * @tc.type: FUNC
173  * @tc.require:AR000GGNV3
174  * @tc.author:
175  */
176 HWTEST_F(Camera3DTest, Camera3DRotateYDegreesTest003, TestSize.Level1)
177 {
178     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
179     ASSERT_TRUE(camera3d != nullptr);
180     camera3d->RotateYDegrees(300.29f);
181 }
182 
183 /**
184  * @tc.name: Camera3DRotateZDegreesTest001
185  * @tc.desc:
186  * @tc.type: FUNC
187  * @tc.require:AR000GGNV3
188  * @tc.author:
189  */
190 HWTEST_F(Camera3DTest, Camera3DRotateZDegreesTest001, TestSize.Level1)
191 {
192     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
193     ASSERT_TRUE(camera3d != nullptr);
194     camera3d->RotateZDegrees(300.29f);
195 }
196 
197 /**
198  * @tc.name: Camera3DRotateZDegreesTest002
199  * @tc.desc:
200  * @tc.type: FUNC
201  * @tc.require:AR000GGNV3
202  * @tc.author:
203  */
204 HWTEST_F(Camera3DTest, Camera3DRotateZDegreesTest002, TestSize.Level1)
205 {
206     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
207     ASSERT_TRUE(camera3d != nullptr);
208     camera3d->RotateZDegrees(300.0f);
209 }
210 
211 /**
212  * @tc.name: Camera3DRotateZDegreesTest003
213  * @tc.desc:
214  * @tc.type: FUNC
215  * @tc.require:AR000GGNV3
216  * @tc.author:
217  */
218 HWTEST_F(Camera3DTest, Camera3DRotateZDegreesTest003, TestSize.Level1)
219 {
220     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
221     ASSERT_TRUE(camera3d != nullptr);
222     camera3d->RotateZDegrees(300.29f);
223 }
224 
225 /**
226  * @tc.name: Camera3DSetAndGetCameraPosTest001
227  * @tc.desc:
228  * @tc.type: FUNC
229  * @tc.require:AR000GGNV3
230  * @tc.author:
231  */
232 HWTEST_F(Camera3DTest, Camera3DSetAndGetCameraPosTest001, TestSize.Level1)
233 {
234     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
235     ASSERT_TRUE(camera3d != nullptr);
236     camera3d->SetCameraPos(8.2f, 9.1f, 8.2f);
237     EXPECT_EQ(8.2f, camera3d->GetCameraPosX());
238     EXPECT_EQ(9.1f, camera3d->GetCameraPosY());
239     EXPECT_EQ(8.2f, camera3d->GetCameraPosZ());
240     camera3d->Save();
241     camera3d->Restore();
242 }
243 
244 /**
245  * @tc.name: Camera3DSetAndGetCameraPosTest002
246  * @tc.desc:
247  * @tc.type: FUNC
248  * @tc.require:AR000GGNV3
249  * @tc.author:
250  */
251 HWTEST_F(Camera3DTest, Camera3DSetAndGetCameraPosTest002, TestSize.Level1)
252 {
253     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
254     ASSERT_TRUE(camera3d != nullptr);
255     camera3d->SetCameraPos(8.0f, 8.1f, 8.2f);
256     EXPECT_EQ(8.0f, camera3d->GetCameraPosX());
257     EXPECT_EQ(8.1f, camera3d->GetCameraPosY());
258     EXPECT_EQ(8.2f, camera3d->GetCameraPosZ());
259     camera3d->Save();
260     camera3d->Restore();
261 }
262 
263 /**
264  * @tc.name: Camera3DApplyToMatrixTest001
265  * @tc.desc:
266  * @tc.type: FUNC
267  * @tc.require:AR000GGNV3
268  * @tc.author:
269  */
270 HWTEST_F(Camera3DTest, Camera3DApplyToMatrixTest001, TestSize.Level1)
271 {
272     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
273     ASSERT_TRUE(camera3d != nullptr);
274     Matrix matrix;
275     camera3d->ApplyToMatrix(matrix);
276 }
277 
278 /**
279  * @tc.name: Camera3DApplyToMatrixTest002
280  * @tc.desc:
281  * @tc.type: FUNC
282  * @tc.require:AR000GGNV3
283  * @tc.author:
284  */
285 HWTEST_F(Camera3DTest, Camera3DApplyToMatrixTest002, TestSize.Level1)
286 {
287     std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
288     ASSERT_TRUE(camera3d != nullptr);
289     Matrix matrix2;
290     camera3d->ApplyToMatrix(matrix2);
291 }
292 } // namespace Drawing
293 } // namespace Rosen
294 } // namespace OHOS