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
24using namespace testing;
25using namespace testing::ext;
26
27class NodeTransitionTest : public testing::Test {
28public:
29    static void SetUpTestCase() {};
30    static void TearDownTestCase() {};
31};
32
33/**
34 * @tc.name: NodeTransitionTest001
35 * @tc.desc: Test ConvertToEffectOption function.
36 * @tc.type: FUNC
37 */
38HWTEST_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 */
55HWTEST_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 */
77HWTEST_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 */
105HWTEST_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 */
128HWTEST_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 */
154HWTEST_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 */
185HWTEST_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 */
203HWTEST_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 */
226HWTEST_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 */
255HWTEST_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 */
279HWTEST_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 */
306HWTEST_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 */
338HWTEST_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 */
356HWTEST_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 */
379HWTEST_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 */
408HWTEST_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 */
432HWTEST_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 */
459HWTEST_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 */
491HWTEST_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 */
509HWTEST_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 */
532HWTEST_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 */
561HWTEST_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 */
585HWTEST_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 */
612HWTEST_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 */
644HWTEST_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 */
662HWTEST_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 */
685HWTEST_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 */
714HWTEST_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 */
738HWTEST_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 */
765HWTEST_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 */
797HWTEST_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 */
822HWTEST_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 */
852HWTEST_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 */
888HWTEST_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 */
919HWTEST_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 */
953HWTEST_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 */
992HWTEST_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 */
1010HWTEST_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 */
1028HWTEST_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}