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 "animate_impl.h"
17 #include "event_converter.h"
18 #include "gtest/gtest.h"
19 #include "native_animate.h"
20 #include "native_interface.h"
21 #include "native_node.h"
22 #include "node_transition.h"
23 
24 using namespace testing;
25 using namespace testing::ext;
26 
27 class NodeTransitionTest : public testing::Test {
28 public:
SetUpTestCase()29     static void SetUpTestCase() {};
TearDownTestCase()30     static void TearDownTestCase() {};
31 };
32 
33 /**
34  * @tc.name: NodeTransitionTest001
35  * @tc.desc: Test ConvertToEffectOption function.
36  * @tc.type: FUNC
37  */
38 HWTEST_F(NodeTransitionTest, NodeTransitionTest001, TestSize.Level1)
39 {
40     ArkUI_TransitionEffect* option = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
41     ASSERT_NE(option, nullptr);
42     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
43     ASSERT_NE(toEffectOption, nullptr);
44 
45     option->toEffectOption = toEffectOption;
46     OH_ArkUI_TransitionEffect_Dispose(option);
47     option = nullptr;
48 }
49 
50 /**
51  * @tc.name: NodeTransitionTest002
52  * @tc.desc: Test ConvertToEffectOption function.
53  * @tc.type: FUNC
54  */
55 HWTEST_F(NodeTransitionTest, NodeTransitionTest002, TestSize.Level1)
56 {
57     ArkUI_TransitionEffect* option = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
58     ASSERT_NE(option, nullptr);
59     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
60     ASSERT_NE(combine, nullptr);
61     OH_ArkUI_TransitionEffect_Combine(option, combine);
62     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
63     ASSERT_NE(toEffectOption, nullptr);
64 
65     OH_ArkUI_TransitionEffect_Dispose(combine);
66     combine = nullptr;
67     option->toEffectOption = toEffectOption;
68     OH_ArkUI_TransitionEffect_Dispose(option);
69     option = nullptr;
70 }
71 
72 /**
73  * @tc.name: NodeTransitionTest003
74  * @tc.desc: Test ConvertToEffectOption function.
75  * @tc.type: FUNC
76  */
77 HWTEST_F(NodeTransitionTest, NodeTransitionTest003, TestSize.Level1)
78 {
79     ArkUI_TransitionEffect* option = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
80     ASSERT_NE(option, nullptr);
81     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
82     ASSERT_NE(combine, nullptr);
83     OH_ArkUI_TransitionEffect_Combine(option, combine);
84 
85     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
86     ASSERT_NE(animation, nullptr);
87     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
88     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
89     ASSERT_NE(toEffectOption, nullptr);
90 
91     OH_ArkUI_AnimateOption_Dispose(animation);
92     animation = nullptr;
93     OH_ArkUI_TransitionEffect_Dispose(combine);
94     combine = nullptr;
95     option->toEffectOption = toEffectOption;
96     OH_ArkUI_TransitionEffect_Dispose(option);
97     option = nullptr;
98 }
99 
100 /**
101  * @tc.name: NodeTransitionTest004
102  * @tc.desc: Test ConvertToEffectOption function.
103  * @tc.type: FUNC
104  */
105 HWTEST_F(NodeTransitionTest, NodeTransitionTest004, TestSize.Level1)
106 {
107     ArkUI_TransitionEffect* option = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
108     ASSERT_NE(option, nullptr);
109 
110     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
111     ASSERT_NE(animation, nullptr);
112     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
113     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
114     ASSERT_NE(toEffectOption, nullptr);
115 
116     OH_ArkUI_AnimateOption_Dispose(animation);
117     animation = nullptr;
118     option->toEffectOption = toEffectOption;
119     OH_ArkUI_TransitionEffect_Dispose(option);
120     option = nullptr;
121 }
122 
123 /**
124  * @tc.name: NodeTransitionTest005
125  * @tc.desc: Test ConvertToEffectOption function.
126  * @tc.type: FUNC
127  */
128 HWTEST_F(NodeTransitionTest, NodeTransitionTest005, TestSize.Level1)
129 {
130     ArkUI_TransitionEffect* option = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
131     ASSERT_NE(option, nullptr);
132 
133     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
134     ASSERT_NE(animation, nullptr);
135     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
136     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
137 
138     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
139     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
140     ASSERT_NE(toEffectOption, nullptr);
141 
142     OH_ArkUI_AnimateOption_Dispose(animation);
143     animation = nullptr;
144     option->toEffectOption = toEffectOption;
145     OH_ArkUI_TransitionEffect_Dispose(option);
146     option = nullptr;
147 }
148 
149 /**
150  * @tc.name: NodeTransitionTest006
151  * @tc.desc: Test ConvertToEffectOption function.
152  * @tc.type: FUNC
153  */
154 HWTEST_F(NodeTransitionTest, NodeTransitionTest006, TestSize.Level1)
155 {
156     ArkUI_TransitionEffect* option = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
157     ASSERT_NE(option, nullptr);
158     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
159     ASSERT_NE(combine, nullptr);
160     OH_ArkUI_TransitionEffect_Combine(option, combine);
161 
162     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
163     ASSERT_NE(animation, nullptr);
164     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
165     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
166 
167     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
168     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
169     ASSERT_NE(toEffectOption, nullptr);
170 
171     OH_ArkUI_AnimateOption_Dispose(animation);
172     animation = nullptr;
173     OH_ArkUI_TransitionEffect_Dispose(combine);
174     combine = nullptr;
175     option->toEffectOption = toEffectOption;
176     OH_ArkUI_TransitionEffect_Dispose(option);
177     option = nullptr;
178 }
179 
180 /**
181  * @tc.name: NodeTransitionTest007
182  * @tc.desc: Test ConvertToEffectOption function.
183  * @tc.type: FUNC
184  */
185 HWTEST_F(NodeTransitionTest, NodeTransitionTest007, TestSize.Level1)
186 {
187     ArkUI_TranslationOptions translationOptions = {0.0f, 0.0f, 0.0f};
188     ArkUI_TransitionEffect* option = OH_ArkUI_CreateTranslationTransitionEffect(&translationOptions);
189     ASSERT_NE(option, nullptr);
190     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
191     ASSERT_NE(toEffectOption, nullptr);
192 
193     option->toEffectOption = toEffectOption;
194     OH_ArkUI_TransitionEffect_Dispose(option);
195     option = nullptr;
196 }
197 
198 /**
199  * @tc.name: NodeTransitionTest008
200  * @tc.desc: Test ConvertToEffectOption function.
201  * @tc.type: FUNC
202  */
203 HWTEST_F(NodeTransitionTest, NodeTransitionTest008, TestSize.Level1)
204 {
205     ArkUI_TranslationOptions translationOptions = {0.0f, 0.0f, 0.0f};
206     ArkUI_TransitionEffect* option = OH_ArkUI_CreateTranslationTransitionEffect(&translationOptions);
207     ASSERT_NE(option, nullptr);
208     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
209     ASSERT_NE(combine, nullptr);
210     OH_ArkUI_TransitionEffect_Combine(option, combine);
211     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
212     ASSERT_NE(toEffectOption, nullptr);
213 
214     OH_ArkUI_TransitionEffect_Dispose(combine);
215     combine = nullptr;
216     option->toEffectOption = toEffectOption;
217     OH_ArkUI_TransitionEffect_Dispose(option);
218     option = nullptr;
219 }
220 
221 /**
222  * @tc.name: NodeTransitionTest009
223  * @tc.desc: Test ConvertToEffectOption function.
224  * @tc.type: FUNC
225  */
226 HWTEST_F(NodeTransitionTest, NodeTransitionTest009, TestSize.Level1)
227 {
228     ArkUI_TranslationOptions translationOptions = {0.0f, 0.0f, 0.0f};
229     ArkUI_TransitionEffect* option = OH_ArkUI_CreateTranslationTransitionEffect(&translationOptions);
230     ASSERT_NE(option, nullptr);
231     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
232     ASSERT_NE(combine, nullptr);
233     OH_ArkUI_TransitionEffect_Combine(option, combine);
234 
235     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
236     ASSERT_NE(animation, nullptr);
237     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
238     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
239     ASSERT_NE(toEffectOption, nullptr);
240 
241     OH_ArkUI_AnimateOption_Dispose(animation);
242     animation = nullptr;
243     OH_ArkUI_TransitionEffect_Dispose(combine);
244     combine = nullptr;
245     option->toEffectOption = toEffectOption;
246     OH_ArkUI_TransitionEffect_Dispose(option);
247     option = nullptr;
248 }
249 
250 /**
251  * @tc.name: NodeTransitionTest010
252  * @tc.desc: Test ConvertToEffectOption function.
253  * @tc.type: FUNC
254  */
255 HWTEST_F(NodeTransitionTest, NodeTransitionTest010, TestSize.Level1)
256 {
257     ArkUI_TranslationOptions translationOptions = {0.0f, 0.0f, 0.0f};
258     ArkUI_TransitionEffect* option = OH_ArkUI_CreateTranslationTransitionEffect(&translationOptions);
259     ASSERT_NE(option, nullptr);
260 
261     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
262     ASSERT_NE(animation, nullptr);
263     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
264     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
265     ASSERT_NE(toEffectOption, nullptr);
266 
267     OH_ArkUI_AnimateOption_Dispose(animation);
268     animation = nullptr;
269     option->toEffectOption = toEffectOption;
270     OH_ArkUI_TransitionEffect_Dispose(option);
271     option = nullptr;
272 }
273 
274 /**
275  * @tc.name: NodeTransitionTest011
276  * @tc.desc: Test ConvertToEffectOption function.
277  * @tc.type: FUNC
278  */
279 HWTEST_F(NodeTransitionTest, NodeTransitionTest011, TestSize.Level1)
280 {
281     ArkUI_TranslationOptions translationOptions = {0.0f, 0.0f, 0.0f};
282     ArkUI_TransitionEffect* option = OH_ArkUI_CreateTranslationTransitionEffect(&translationOptions);
283     ASSERT_NE(option, nullptr);
284 
285     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
286     ASSERT_NE(animation, nullptr);
287     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
288     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
289 
290     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
291     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
292     ASSERT_NE(toEffectOption, nullptr);
293 
294     OH_ArkUI_AnimateOption_Dispose(animation);
295     animation = nullptr;
296     option->toEffectOption = toEffectOption;
297     OH_ArkUI_TransitionEffect_Dispose(option);
298     option = nullptr;
299 }
300 
301 /**
302  * @tc.name: NodeTransitionTest012
303  * @tc.desc: Test ConvertToEffectOption function.
304  * @tc.type: FUNC
305  */
306 HWTEST_F(NodeTransitionTest, NodeTransitionTest012, TestSize.Level1)
307 {
308     ArkUI_TranslationOptions translationOptions = {0.0f, 0.0f, 0.0f};
309     ArkUI_TransitionEffect* option = OH_ArkUI_CreateTranslationTransitionEffect(&translationOptions);
310     ASSERT_NE(option, nullptr);
311     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
312     ASSERT_NE(combine, nullptr);
313     OH_ArkUI_TransitionEffect_Combine(option, combine);
314 
315     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
316     ASSERT_NE(animation, nullptr);
317     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
318     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
319 
320     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
321     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
322     ASSERT_NE(toEffectOption, nullptr);
323 
324     OH_ArkUI_AnimateOption_Dispose(animation);
325     animation = nullptr;
326     OH_ArkUI_TransitionEffect_Dispose(combine);
327     combine = nullptr;
328     option->toEffectOption = toEffectOption;
329     OH_ArkUI_TransitionEffect_Dispose(option);
330     option = nullptr;
331 }
332 
333 /**
334  * @tc.name: NodeTransitionTest013
335  * @tc.desc: Test ConvertToEffectOption function.
336  * @tc.type: FUNC
337  */
338 HWTEST_F(NodeTransitionTest, NodeTransitionTest013, TestSize.Level1)
339 {
340     ArkUI_ScaleOptions scaleOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
341     ArkUI_TransitionEffect* option = OH_ArkUI_CreateScaleTransitionEffect(&scaleOptions);
342     ASSERT_NE(option, nullptr);
343     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
344     ASSERT_NE(toEffectOption, nullptr);
345 
346     option->toEffectOption = toEffectOption;
347     OH_ArkUI_TransitionEffect_Dispose(option);
348     option = nullptr;
349 }
350 
351 /**
352  * @tc.name: NodeTransitionTest014
353  * @tc.desc: Test ConvertToEffectOption function.
354  * @tc.type: FUNC
355  */
356 HWTEST_F(NodeTransitionTest, NodeTransitionTest014, TestSize.Level1)
357 {
358     ArkUI_ScaleOptions scaleOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
359     ArkUI_TransitionEffect* option = OH_ArkUI_CreateScaleTransitionEffect(&scaleOptions);
360     ASSERT_NE(option, nullptr);
361     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
362     ASSERT_NE(combine, nullptr);
363     OH_ArkUI_TransitionEffect_Combine(option, combine);
364     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
365     ASSERT_NE(toEffectOption, nullptr);
366 
367     OH_ArkUI_TransitionEffect_Dispose(combine);
368     combine = nullptr;
369     option->toEffectOption = toEffectOption;
370     OH_ArkUI_TransitionEffect_Dispose(option);
371     option = nullptr;
372 }
373 
374 /**
375  * @tc.name: NodeTransitionTest015
376  * @tc.desc: Test ConvertToEffectOption function.
377  * @tc.type: FUNC
378  */
379 HWTEST_F(NodeTransitionTest, NodeTransitionTest015, TestSize.Level1)
380 {
381     ArkUI_ScaleOptions scaleOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
382     ArkUI_TransitionEffect* option = OH_ArkUI_CreateScaleTransitionEffect(&scaleOptions);
383     ASSERT_NE(option, nullptr);
384     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
385     ASSERT_NE(combine, nullptr);
386     OH_ArkUI_TransitionEffect_Combine(option, combine);
387 
388     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
389     ASSERT_NE(animation, nullptr);
390     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
391     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
392     ASSERT_NE(toEffectOption, nullptr);
393 
394     OH_ArkUI_AnimateOption_Dispose(animation);
395     animation = nullptr;
396     OH_ArkUI_TransitionEffect_Dispose(combine);
397     combine = nullptr;
398     option->toEffectOption = toEffectOption;
399     OH_ArkUI_TransitionEffect_Dispose(option);
400     option = nullptr;
401 }
402 
403 /**
404  * @tc.name: NodeTransitionTest016
405  * @tc.desc: Test ConvertToEffectOption function.
406  * @tc.type: FUNC
407  */
408 HWTEST_F(NodeTransitionTest, NodeTransitionTest016, TestSize.Level1)
409 {
410     ArkUI_ScaleOptions scaleOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
411     ArkUI_TransitionEffect* option = OH_ArkUI_CreateScaleTransitionEffect(&scaleOptions);
412     ASSERT_NE(option, nullptr);
413 
414     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
415     ASSERT_NE(animation, nullptr);
416     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
417     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
418     ASSERT_NE(toEffectOption, nullptr);
419 
420     OH_ArkUI_AnimateOption_Dispose(animation);
421     animation = nullptr;
422     option->toEffectOption = toEffectOption;
423     OH_ArkUI_TransitionEffect_Dispose(option);
424     option = nullptr;
425 }
426 
427 /**
428  * @tc.name: NodeTransitionTest017
429  * @tc.desc: Test ConvertToEffectOption function.
430  * @tc.type: FUNC
431  */
432 HWTEST_F(NodeTransitionTest, NodeTransitionTest017, TestSize.Level1)
433 {
434     ArkUI_ScaleOptions scaleOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
435     ArkUI_TransitionEffect* option = OH_ArkUI_CreateScaleTransitionEffect(&scaleOptions);
436     ASSERT_NE(option, nullptr);
437 
438     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
439     ASSERT_NE(animation, nullptr);
440     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
441     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
442 
443     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
444     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
445     ASSERT_NE(toEffectOption, nullptr);
446 
447     OH_ArkUI_AnimateOption_Dispose(animation);
448     animation = nullptr;
449     option->toEffectOption = toEffectOption;
450     OH_ArkUI_TransitionEffect_Dispose(option);
451     option = nullptr;
452 }
453 
454 /**
455  * @tc.name: NodeTransitionTest018
456  * @tc.desc: Test ConvertToEffectOption function.
457  * @tc.type: FUNC
458  */
459 HWTEST_F(NodeTransitionTest, NodeTransitionTest018, TestSize.Level1)
460 {
461     ArkUI_ScaleOptions scaleOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
462     ArkUI_TransitionEffect* option = OH_ArkUI_CreateScaleTransitionEffect(&scaleOptions);
463     ASSERT_NE(option, nullptr);
464     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
465     ASSERT_NE(combine, nullptr);
466     OH_ArkUI_TransitionEffect_Combine(option, combine);
467 
468     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
469     ASSERT_NE(animation, nullptr);
470     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
471     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
472 
473     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
474     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
475     ASSERT_NE(toEffectOption, nullptr);
476 
477     OH_ArkUI_AnimateOption_Dispose(animation);
478     animation = nullptr;
479     OH_ArkUI_TransitionEffect_Dispose(combine);
480     combine = nullptr;
481     option->toEffectOption = toEffectOption;
482     OH_ArkUI_TransitionEffect_Dispose(option);
483     option = nullptr;
484 }
485 
486 /**
487  * @tc.name: NodeTransitionTest019
488  * @tc.desc: Test ConvertToEffectOption function.
489  * @tc.type: FUNC
490  */
491 HWTEST_F(NodeTransitionTest, NodeTransitionTest019, TestSize.Level1)
492 {
493     ArkUI_RotationOptions rotationOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
494     ArkUI_TransitionEffect* option = OH_ArkUI_CreateRotationTransitionEffect(&rotationOptions);
495     ASSERT_NE(option, nullptr);
496     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
497     ASSERT_NE(toEffectOption, nullptr);
498 
499     option->toEffectOption = toEffectOption;
500     OH_ArkUI_TransitionEffect_Dispose(option);
501     option = nullptr;
502 }
503 
504 /**
505  * @tc.name: NodeTransitionTest020
506  * @tc.desc: Test ConvertToEffectOption function.
507  * @tc.type: FUNC
508  */
509 HWTEST_F(NodeTransitionTest, NodeTransitionTest020, TestSize.Level1)
510 {
511     ArkUI_RotationOptions rotationOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
512     ArkUI_TransitionEffect* option = OH_ArkUI_CreateRotationTransitionEffect(&rotationOptions);
513     ASSERT_NE(option, nullptr);
514     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
515     ASSERT_NE(combine, nullptr);
516     OH_ArkUI_TransitionEffect_Combine(option, combine);
517     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
518     ASSERT_NE(toEffectOption, nullptr);
519 
520     OH_ArkUI_TransitionEffect_Dispose(combine);
521     combine = nullptr;
522     option->toEffectOption = toEffectOption;
523     OH_ArkUI_TransitionEffect_Dispose(option);
524     option = nullptr;
525 }
526 
527 /**
528  * @tc.name: NodeTransitionTest021
529  * @tc.desc: Test ConvertToEffectOption function.
530  * @tc.type: FUNC
531  */
532 HWTEST_F(NodeTransitionTest, NodeTransitionTest021, TestSize.Level1)
533 {
534     ArkUI_RotationOptions rotationOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
535     ArkUI_TransitionEffect* option = OH_ArkUI_CreateRotationTransitionEffect(&rotationOptions);
536     ASSERT_NE(option, nullptr);
537     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
538     ASSERT_NE(combine, nullptr);
539     OH_ArkUI_TransitionEffect_Combine(option, combine);
540 
541     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
542     ASSERT_NE(animation, nullptr);
543     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
544     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
545     ASSERT_NE(toEffectOption, nullptr);
546 
547     OH_ArkUI_AnimateOption_Dispose(animation);
548     animation = nullptr;
549     OH_ArkUI_TransitionEffect_Dispose(combine);
550     combine = nullptr;
551     option->toEffectOption = toEffectOption;
552     OH_ArkUI_TransitionEffect_Dispose(option);
553     option = nullptr;
554 }
555 
556 /**
557  * @tc.name: NodeTransitionTest022
558  * @tc.desc: Test ConvertToEffectOption function.
559  * @tc.type: FUNC
560  */
561 HWTEST_F(NodeTransitionTest, NodeTransitionTest022, TestSize.Level1)
562 {
563     ArkUI_RotationOptions rotationOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
564     ArkUI_TransitionEffect* option = OH_ArkUI_CreateRotationTransitionEffect(&rotationOptions);
565     ASSERT_NE(option, nullptr);
566 
567     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
568     ASSERT_NE(animation, nullptr);
569     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
570     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
571     ASSERT_NE(toEffectOption, nullptr);
572 
573     OH_ArkUI_AnimateOption_Dispose(animation);
574     animation = nullptr;
575     option->toEffectOption = toEffectOption;
576     OH_ArkUI_TransitionEffect_Dispose(option);
577     option = nullptr;
578 }
579 
580 /**
581  * @tc.name: NodeTransitionTest023
582  * @tc.desc: Test ConvertToEffectOption function.
583  * @tc.type: FUNC
584  */
585 HWTEST_F(NodeTransitionTest, NodeTransitionTest023, TestSize.Level1)
586 {
587     ArkUI_RotationOptions rotationOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
588     ArkUI_TransitionEffect* option = OH_ArkUI_CreateRotationTransitionEffect(&rotationOptions);
589     ASSERT_NE(option, nullptr);
590 
591     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
592     ASSERT_NE(animation, nullptr);
593     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
594     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
595 
596     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
597     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
598     ASSERT_NE(toEffectOption, nullptr);
599 
600     OH_ArkUI_AnimateOption_Dispose(animation);
601     animation = nullptr;
602     option->toEffectOption = toEffectOption;
603     OH_ArkUI_TransitionEffect_Dispose(option);
604     option = nullptr;
605 }
606 
607 /**
608  * @tc.name: NodeTransitionTest024
609  * @tc.desc: Test ConvertToEffectOption function.
610  * @tc.type: FUNC
611  */
612 HWTEST_F(NodeTransitionTest, NodeTransitionTest024, TestSize.Level1)
613 {
614     ArkUI_RotationOptions rotationOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
615     ArkUI_TransitionEffect* option = OH_ArkUI_CreateRotationTransitionEffect(&rotationOptions);
616     ASSERT_NE(option, nullptr);
617     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
618     ASSERT_NE(combine, nullptr);
619     OH_ArkUI_TransitionEffect_Combine(option, combine);
620 
621     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
622     ASSERT_NE(animation, nullptr);
623     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
624     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
625 
626     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
627     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
628     ASSERT_NE(toEffectOption, nullptr);
629 
630     OH_ArkUI_AnimateOption_Dispose(animation);
631     animation = nullptr;
632     OH_ArkUI_TransitionEffect_Dispose(combine);
633     combine = nullptr;
634     option->toEffectOption = toEffectOption;
635     OH_ArkUI_TransitionEffect_Dispose(option);
636     option = nullptr;
637 }
638 
639 /**
640  * @tc.name: NodeTransitionTest025
641  * @tc.desc: Test ConvertToEffectOption function.
642  * @tc.type: FUNC
643  */
644 HWTEST_F(NodeTransitionTest, NodeTransitionTest025, TestSize.Level1)
645 {
646     ArkUI_TransitionEffect* option =
647         OH_ArkUI_CreateMovementTransitionEffect(ArkUI_TransitionEdge::ARKUI_TRANSITION_EDGE_START);
648     ASSERT_NE(option, nullptr);
649     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
650     ASSERT_NE(toEffectOption, nullptr);
651 
652     option->toEffectOption = toEffectOption;
653     OH_ArkUI_TransitionEffect_Dispose(option);
654     option = nullptr;
655 }
656 
657 /**
658  * @tc.name: NodeTransitionTest026
659  * @tc.desc: Test ConvertToEffectOption function.
660  * @tc.type: FUNC
661  */
662 HWTEST_F(NodeTransitionTest, NodeTransitionTest026, TestSize.Level1)
663 {
664     ArkUI_TransitionEffect* option =
665         OH_ArkUI_CreateMovementTransitionEffect(ArkUI_TransitionEdge::ARKUI_TRANSITION_EDGE_START);
666     ASSERT_NE(option, nullptr);
667     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
668     ASSERT_NE(combine, nullptr);
669     OH_ArkUI_TransitionEffect_Combine(option, combine);
670     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
671     ASSERT_NE(toEffectOption, nullptr);
672 
673     OH_ArkUI_TransitionEffect_Dispose(combine);
674     combine = nullptr;
675     option->toEffectOption = toEffectOption;
676     OH_ArkUI_TransitionEffect_Dispose(option);
677     option = nullptr;
678 }
679 
680 /**
681  * @tc.name: NodeTransitionTest027
682  * @tc.desc: Test ConvertToEffectOption function.
683  * @tc.type: FUNC
684  */
685 HWTEST_F(NodeTransitionTest, NodeTransitionTest027, TestSize.Level1)
686 {
687     ArkUI_TransitionEffect* option =
688         OH_ArkUI_CreateMovementTransitionEffect(ArkUI_TransitionEdge::ARKUI_TRANSITION_EDGE_START);
689     ASSERT_NE(option, nullptr);
690     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
691     ASSERT_NE(combine, nullptr);
692     OH_ArkUI_TransitionEffect_Combine(option, combine);
693 
694     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
695     ASSERT_NE(animation, nullptr);
696     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
697     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
698     ASSERT_NE(toEffectOption, nullptr);
699 
700     OH_ArkUI_AnimateOption_Dispose(animation);
701     animation = nullptr;
702     OH_ArkUI_TransitionEffect_Dispose(combine);
703     combine = nullptr;
704     option->toEffectOption = toEffectOption;
705     OH_ArkUI_TransitionEffect_Dispose(option);
706     option = nullptr;
707 }
708 
709 /**
710  * @tc.name: NodeTransitionTest028
711  * @tc.desc: Test ConvertToEffectOption function.
712  * @tc.type: FUNC
713  */
714 HWTEST_F(NodeTransitionTest, NodeTransitionTest028, TestSize.Level1)
715 {
716     ArkUI_TransitionEffect* option =
717         OH_ArkUI_CreateMovementTransitionEffect(ArkUI_TransitionEdge::ARKUI_TRANSITION_EDGE_START);
718     ASSERT_NE(option, nullptr);
719 
720     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
721     ASSERT_NE(animation, nullptr);
722     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
723     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
724     ASSERT_NE(toEffectOption, nullptr);
725 
726     OH_ArkUI_AnimateOption_Dispose(animation);
727     animation = nullptr;
728     option->toEffectOption = toEffectOption;
729     OH_ArkUI_TransitionEffect_Dispose(option);
730     option = nullptr;
731 }
732 
733 /**
734  * @tc.name: NodeTransitionTest029
735  * @tc.desc: Test ConvertToEffectOption function.
736  * @tc.type: FUNC
737  */
738 HWTEST_F(NodeTransitionTest, NodeTransitionTest029, TestSize.Level1)
739 {
740     ArkUI_TransitionEffect* option =
741         OH_ArkUI_CreateMovementTransitionEffect(ArkUI_TransitionEdge::ARKUI_TRANSITION_EDGE_START);
742     ASSERT_NE(option, nullptr);
743 
744     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
745     ASSERT_NE(animation, nullptr);
746     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
747     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
748 
749     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
750     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
751     ASSERT_NE(toEffectOption, nullptr);
752 
753     OH_ArkUI_AnimateOption_Dispose(animation);
754     animation = nullptr;
755     option->toEffectOption = toEffectOption;
756     OH_ArkUI_TransitionEffect_Dispose(option);
757     option = nullptr;
758 }
759 
760 /**
761  * @tc.name: NodeTransitionTest030
762  * @tc.desc: Test ConvertToEffectOption function.
763  * @tc.type: FUNC
764  */
765 HWTEST_F(NodeTransitionTest, NodeTransitionTest030, TestSize.Level1)
766 {
767     ArkUI_TransitionEffect* option =
768         OH_ArkUI_CreateMovementTransitionEffect(ArkUI_TransitionEdge::ARKUI_TRANSITION_EDGE_START);
769     ASSERT_NE(option, nullptr);
770     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
771     ASSERT_NE(combine, nullptr);
772     OH_ArkUI_TransitionEffect_Combine(option, combine);
773 
774     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
775     ASSERT_NE(animation, nullptr);
776     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
777     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
778 
779     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
780     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
781     ASSERT_NE(toEffectOption, nullptr);
782 
783     OH_ArkUI_AnimateOption_Dispose(animation);
784     animation = nullptr;
785     OH_ArkUI_TransitionEffect_Dispose(combine);
786     combine = nullptr;
787     option->toEffectOption = toEffectOption;
788     OH_ArkUI_TransitionEffect_Dispose(option);
789     option = nullptr;
790 }
791 
792 /**
793  * @tc.name: NodeTransitionTest031
794  * @tc.desc: Test ConvertToEffectOption function.
795  * @tc.type: FUNC
796  */
797 HWTEST_F(NodeTransitionTest, NodeTransitionTest031, TestSize.Level1)
798 {
799     ArkUI_TransitionEffect* appear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
800     ASSERT_NE(appear, nullptr);
801     ArkUI_TransitionEffect* disappear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
802     ASSERT_NE(disappear, nullptr);
803     ArkUI_TransitionEffect* option = OH_ArkUI_CreateAsymmetricTransitionEffect(appear, disappear);
804     ASSERT_NE(option, nullptr);
805     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
806     ASSERT_NE(toEffectOption, nullptr);
807 
808     option->toEffectOption = toEffectOption;
809     OH_ArkUI_TransitionEffect_Dispose(option);
810     option = nullptr;
811     OH_ArkUI_TransitionEffect_Dispose(appear);
812     appear = nullptr;
813     OH_ArkUI_TransitionEffect_Dispose(disappear);
814     disappear = nullptr;
815 }
816 
817 /**
818  * @tc.name: NodeTransitionTest032
819  * @tc.desc: Test ConvertToEffectOption function.
820  * @tc.type: FUNC
821  */
822 HWTEST_F(NodeTransitionTest, NodeTransitionTest032, TestSize.Level1)
823 {
824     ArkUI_TransitionEffect* appear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
825     ASSERT_NE(appear, nullptr);
826     ArkUI_TransitionEffect* disappear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
827     ASSERT_NE(disappear, nullptr);
828     ArkUI_TransitionEffect* option = OH_ArkUI_CreateAsymmetricTransitionEffect(appear, disappear);
829     ASSERT_NE(option, nullptr);
830     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
831     ASSERT_NE(combine, nullptr);
832     OH_ArkUI_TransitionEffect_Combine(option, combine);
833     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
834     ASSERT_NE(toEffectOption, nullptr);
835 
836     OH_ArkUI_TransitionEffect_Dispose(combine);
837     combine = nullptr;
838     option->toEffectOption = toEffectOption;
839     OH_ArkUI_TransitionEffect_Dispose(option);
840     option = nullptr;
841     OH_ArkUI_TransitionEffect_Dispose(appear);
842     appear = nullptr;
843     OH_ArkUI_TransitionEffect_Dispose(disappear);
844     disappear = nullptr;
845 }
846 
847 /**
848  * @tc.name: NodeTransitionTest033
849  * @tc.desc: Test ConvertToEffectOption function.
850  * @tc.type: FUNC
851  */
852 HWTEST_F(NodeTransitionTest, NodeTransitionTest033, TestSize.Level1)
853 {
854     ArkUI_TransitionEffect* appear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
855     ASSERT_NE(appear, nullptr);
856     ArkUI_TransitionEffect* disappear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
857     ASSERT_NE(disappear, nullptr);
858     ArkUI_TransitionEffect* option = OH_ArkUI_CreateAsymmetricTransitionEffect(appear, disappear);
859     ASSERT_NE(option, nullptr);
860     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
861     ASSERT_NE(combine, nullptr);
862     OH_ArkUI_TransitionEffect_Combine(option, combine);
863 
864     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
865     ASSERT_NE(animation, nullptr);
866     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
867     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
868     ASSERT_NE(toEffectOption, nullptr);
869 
870     OH_ArkUI_AnimateOption_Dispose(animation);
871     animation = nullptr;
872     OH_ArkUI_TransitionEffect_Dispose(combine);
873     combine = nullptr;
874     option->toEffectOption = toEffectOption;
875     OH_ArkUI_TransitionEffect_Dispose(option);
876     option = nullptr;
877     OH_ArkUI_TransitionEffect_Dispose(appear);
878     appear = nullptr;
879     OH_ArkUI_TransitionEffect_Dispose(disappear);
880     disappear = nullptr;
881 }
882 
883 /**
884  * @tc.name: NodeTransitionTest034
885  * @tc.desc: Test ConvertToEffectOption function.
886  * @tc.type: FUNC
887  */
888 HWTEST_F(NodeTransitionTest, NodeTransitionTest034, TestSize.Level1)
889 {
890     ArkUI_TransitionEffect* appear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
891     ASSERT_NE(appear, nullptr);
892     ArkUI_TransitionEffect* disappear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
893     ASSERT_NE(disappear, nullptr);
894     ArkUI_TransitionEffect* option = OH_ArkUI_CreateAsymmetricTransitionEffect(appear, disappear);
895     ASSERT_NE(option, nullptr);
896 
897     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
898     ASSERT_NE(animation, nullptr);
899     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
900     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
901     ASSERT_NE(toEffectOption, nullptr);
902 
903     OH_ArkUI_AnimateOption_Dispose(animation);
904     animation = nullptr;
905     option->toEffectOption = toEffectOption;
906     OH_ArkUI_TransitionEffect_Dispose(option);
907     option = nullptr;
908     OH_ArkUI_TransitionEffect_Dispose(appear);
909     appear = nullptr;
910     OH_ArkUI_TransitionEffect_Dispose(disappear);
911     disappear = nullptr;
912 }
913 
914 /**
915  * @tc.name: NodeTransitionTest035
916  * @tc.desc: Test ConvertToEffectOption function.
917  * @tc.type: FUNC
918  */
919 HWTEST_F(NodeTransitionTest, NodeTransitionTest035, TestSize.Level1)
920 {
921     ArkUI_TransitionEffect* appear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
922     ASSERT_NE(appear, nullptr);
923     ArkUI_TransitionEffect* disappear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
924     ASSERT_NE(disappear, nullptr);
925     ArkUI_TransitionEffect* option = OH_ArkUI_CreateAsymmetricTransitionEffect(appear, disappear);
926     ASSERT_NE(option, nullptr);
927 
928     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
929     ASSERT_NE(animation, nullptr);
930     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
931     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
932 
933     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
934     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
935     ASSERT_NE(toEffectOption, nullptr);
936 
937     OH_ArkUI_AnimateOption_Dispose(animation);
938     animation = nullptr;
939     option->toEffectOption = toEffectOption;
940     OH_ArkUI_TransitionEffect_Dispose(option);
941     option = nullptr;
942     OH_ArkUI_TransitionEffect_Dispose(appear);
943     appear = nullptr;
944     OH_ArkUI_TransitionEffect_Dispose(disappear);
945     disappear = nullptr;
946 }
947 
948 /**
949  * @tc.name: NodeTransitionTest036
950  * @tc.desc: Test ConvertToEffectOption function.
951  * @tc.type: FUNC
952  */
953 HWTEST_F(NodeTransitionTest, NodeTransitionTest036, TestSize.Level1)
954 {
955     ArkUI_TransitionEffect* appear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
956     ASSERT_NE(appear, nullptr);
957     ArkUI_TransitionEffect* disappear = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
958     ASSERT_NE(disappear, nullptr);
959     ArkUI_TransitionEffect* option = OH_ArkUI_CreateAsymmetricTransitionEffect(appear, disappear);
960     ASSERT_NE(option, nullptr);
961     ArkUI_TransitionEffect* combine = OH_ArkUI_CreateOpacityTransitionEffect(0.0f);
962     ASSERT_NE(combine, nullptr);
963     OH_ArkUI_TransitionEffect_Combine(option, combine);
964 
965     ArkUI_AnimateOption* animation = OH_ArkUI_AnimateOption_Create();
966     ASSERT_NE(animation, nullptr);
967     ArkUI_ExpectedFrameRateRange expectedFrameRateRange = {0, 0, 0};
968     OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(animation, &expectedFrameRateRange);
969 
970     OH_ArkUI_TransitionEffect_SetAnimation(option, animation);
971     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
972     ASSERT_NE(toEffectOption, nullptr);
973 
974     OH_ArkUI_AnimateOption_Dispose(animation);
975     animation = nullptr;
976     OH_ArkUI_TransitionEffect_Dispose(combine);
977     combine = nullptr;
978     option->toEffectOption = toEffectOption;
979     OH_ArkUI_TransitionEffect_Dispose(option);
980     option = nullptr;
981     OH_ArkUI_TransitionEffect_Dispose(appear);
982     appear = nullptr;
983     OH_ArkUI_TransitionEffect_Dispose(disappear);
984     disappear = nullptr;
985 }
986 
987 /**
988  * @tc.name: NodeTransitionTest037
989  * @tc.desc: Test ConvertToEffectOption function.
990  * @tc.type: FUNC
991  */
992 HWTEST_F(NodeTransitionTest, NodeTransitionTest037, TestSize.Level1)
993 {
994     ArkUI_TranslationOptions translationOptions = {0.0f, 0.0f, 0.0f};
995     ArkUI_TransitionEffect* option = OH_ArkUI_CreateTranslationTransitionEffect(&translationOptions);
996     ASSERT_NE(option, nullptr);
997     option->translate = nullptr;
998     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
999     ASSERT_EQ(toEffectOption, nullptr);
1000 
1001     OH_ArkUI_TransitionEffect_Dispose(option);
1002     option = nullptr;
1003 }
1004 
1005 /**
1006  * @tc.name: NodeTransitionTest038
1007  * @tc.desc: Test ConvertToEffectOption function.
1008  * @tc.type: FUNC
1009  */
1010 HWTEST_F(NodeTransitionTest, NodeTransitionTest038, TestSize.Level1)
1011 {
1012     ArkUI_ScaleOptions scaleOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
1013     ArkUI_TransitionEffect* option = OH_ArkUI_CreateScaleTransitionEffect(&scaleOptions);
1014     ASSERT_NE(option, nullptr);
1015     option->scale = nullptr;
1016     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
1017     ASSERT_EQ(toEffectOption, nullptr);
1018 
1019     OH_ArkUI_TransitionEffect_Dispose(option);
1020     option = nullptr;
1021 }
1022 
1023 /**
1024  * @tc.name: NodeTransitionTest039
1025  * @tc.desc: Test ConvertToEffectOption function.
1026  * @tc.type: FUNC
1027  */
1028 HWTEST_F(NodeTransitionTest, NodeTransitionTest039, TestSize.Level1)
1029 {
1030     ArkUI_RotationOptions rotationOptions = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
1031     ArkUI_TransitionEffect* option = OH_ArkUI_CreateRotationTransitionEffect(&rotationOptions);
1032     ASSERT_NE(option, nullptr);
1033     option->rotate = nullptr;
1034     ArkUITransitionEffectOption* toEffectOption = OHOS::Ace::TransitionModel::ConvertToEffectOption(option);
1035     ASSERT_EQ(toEffectOption, nullptr);
1036 
1037     OH_ArkUI_TransitionEffect_Dispose(option);
1038     option = nullptr;
1039 }