diff --git a/test/unittest/BUILD.gn b/test/unittest/BUILD.gn index d261f36312ab3fd5671cfda46a0e1ecf10da7c8d..155a02e41f2aaaf920c6dfe3ba6f3a6fecdfe694 100644 --- a/test/unittest/BUILD.gn +++ b/test/unittest/BUILD.gn @@ -1175,6 +1175,7 @@ ohos_source_set("ace_components_pattern") { "$ace_root/frameworks/core/components_ng/pattern/rating/rating_accessibility_property.cpp", "$ace_root/frameworks/core/components_ng/pattern/rating/rating_layout_algorithm.cpp", "$ace_root/frameworks/core/components_ng/pattern/rating/rating_model_ng.cpp", + "$ace_root/frameworks/core/components_ng/pattern/rating/rating_model_static.cpp", "$ace_root/frameworks/core/components_ng/pattern/rating/rating_modifier.cpp", "$ace_root/frameworks/core/components_ng/pattern/rating/rating_pattern.cpp", "$ace_root/frameworks/core/components_ng/pattern/recycle_view/recycle_dummy_node.cpp", diff --git a/test/unittest/core/pattern/button/button_model_static_test_ng.cpp b/test/unittest/core/pattern/button/button_model_static_test_ng.cpp index 519a74a6e28f811c647a0bdb14cfa829a9179666..bec13b1f99fb98704fd5c9f91661d6e4e32873e8 100644 --- a/test/unittest/core/pattern/button/button_model_static_test_ng.cpp +++ b/test/unittest/core/pattern/button/button_model_static_test_ng.cpp @@ -120,7 +120,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg001, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -152,7 +152,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg002, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -184,7 +184,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg003, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -306,6 +306,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg007, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -334,6 +335,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg008, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -366,6 +368,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg009, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -398,6 +401,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg010, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -430,6 +434,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg011, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -462,6 +467,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg012, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -494,6 +500,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg013, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -504,8 +511,9 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg013, TestSize.Level1) * @tc.expected: step3. the property value meet expectations. */ std::optional stateEffectValue = true; - auto buttonEventHub = frameNode->GetEventHub(); ButtonModelStatic::SetStateEffect(frameNode, stateEffectValue); + auto buttonEventHub = frameNode->GetEventHub(); + CHECK_NULL_VOID(buttonEventHub); EXPECT_EQ(buttonEventHub->GetStateEffect(), true); } @@ -523,6 +531,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg014, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -573,6 +582,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg015, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -614,6 +624,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg016, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ @@ -646,6 +657,7 @@ HWTEST_F(ButtonStaticTestNg, ButtonStaticTestNg017, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::BUTTON_ETS_TAG); auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create button layoutProperty. */ diff --git a/test/unittest/core/pattern/checkbox/checkbox_model_static_test_ng.cpp b/test/unittest/core/pattern/checkbox/checkbox_model_static_test_ng.cpp index 9b5a7f813d24438ef6834d3edbf7fb8e81cd4caa..4bfaa1bf995d01ec6e38b202ddce9281c7da7b6f 100644 --- a/test/unittest/core/pattern/checkbox/checkbox_model_static_test_ng.cpp +++ b/test/unittest/core/pattern/checkbox/checkbox_model_static_test_ng.cpp @@ -103,7 +103,7 @@ HWTEST_F(CheckboxStaticTestNg, CheckboxStaticTestNg001, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECK_BOX_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkbox paintProperty. */ @@ -136,7 +136,7 @@ HWTEST_F(CheckboxStaticTestNg, CheckboxStaticTestNg002, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECK_BOX_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkbox paintProperty. */ @@ -169,7 +169,7 @@ HWTEST_F(CheckboxStaticTestNg, CheckboxStaticTestNg003, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECK_BOX_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkbox paintProperty. */ @@ -202,7 +202,7 @@ HWTEST_F(CheckboxStaticTestNg, CheckboxStaticTestNg004, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECK_BOX_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkbox paintProperty. */ @@ -235,7 +235,7 @@ HWTEST_F(CheckboxStaticTestNg, CheckboxStaticTestNg005, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECK_BOX_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkbox paintProperty. */ @@ -268,7 +268,7 @@ HWTEST_F(CheckboxStaticTestNg, CheckboxStaticTestNg006, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECK_BOX_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkbox paintProperty. */ @@ -301,7 +301,7 @@ HWTEST_F(CheckboxStaticTestNg, CheckboxStaticTestNg007, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECK_BOX_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkbox paintProperty. */ diff --git a/test/unittest/core/pattern/checkboxgroup/checkboxgroup_model_static_test_ng.cpp b/test/unittest/core/pattern/checkboxgroup/checkboxgroup_model_static_test_ng.cpp index b5174387012d20b2fa2d4050d2083f4e36e2ca30..bced6b33949b57c12401e2912af796c52bbf1559 100644 --- a/test/unittest/core/pattern/checkboxgroup/checkboxgroup_model_static_test_ng.cpp +++ b/test/unittest/core/pattern/checkboxgroup/checkboxgroup_model_static_test_ng.cpp @@ -106,7 +106,7 @@ HWTEST_F(CheckboxGroupStaticTestNg, CheckboxGroupStaticTestNg001, TestSize.Level ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECKBOXGROUP_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkboxgroup paintProperty. */ @@ -139,7 +139,7 @@ HWTEST_F(CheckboxGroupStaticTestNg, CheckboxGroupStaticTestNg002, TestSize.Level ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECKBOXGROUP_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkboxgroup paintProperty. */ @@ -172,7 +172,7 @@ HWTEST_F(CheckboxGroupStaticTestNg, CheckboxGroupStaticTestNg003, TestSize.Level ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECKBOXGROUP_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkboxgroup paintProperty. */ @@ -205,7 +205,7 @@ HWTEST_F(CheckboxGroupStaticTestNg, CheckboxGroupStaticTestNg004, TestSize.Level ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECKBOXGROUP_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkboxgroup paintProperty. */ @@ -238,7 +238,7 @@ HWTEST_F(CheckboxGroupStaticTestNg, CheckboxGroupStaticTestNg005, TestSize.Level ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECKBOXGROUP_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkboxgroup paintProperty. */ @@ -271,7 +271,7 @@ HWTEST_F(CheckboxGroupStaticTestNg, CheckboxGroupStaticTestNg006, TestSize.Level ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECKBOXGROUP_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkboxgroup paintProperty. */ @@ -304,7 +304,7 @@ HWTEST_F(CheckboxGroupStaticTestNg, CheckboxGroupStaticTestNg007, TestSize.Level ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::CHECKBOXGROUP_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create checkboxgroup paintProperty. */ diff --git a/test/unittest/core/pattern/radio/radio_model_static_test_ng.cpp b/test/unittest/core/pattern/radio/radio_model_static_test_ng.cpp index 4d971c74eac816abcd6e769994b46fc1b0e3ad07..1f49ddde7cc1ae7a0ea13b6871624bb6bf2fd513 100644 --- a/test/unittest/core/pattern/radio/radio_model_static_test_ng.cpp +++ b/test/unittest/core/pattern/radio/radio_model_static_test_ng.cpp @@ -96,7 +96,7 @@ HWTEST_F(RadioStaticTestNg, RadioStaticTestNg001, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::RADIO_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create radio paintProperty. */ @@ -129,7 +129,7 @@ HWTEST_F(RadioStaticTestNg, RadioStaticTestNg002, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::RADIO_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create radio paintProperty. */ @@ -162,7 +162,7 @@ HWTEST_F(RadioStaticTestNg, RadioStaticTestNg003, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::RADIO_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create radio paintProperty. */ @@ -195,7 +195,7 @@ HWTEST_F(RadioStaticTestNg, RadioStaticTestNg004, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::RADIO_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create radio paintProperty. */ @@ -228,7 +228,7 @@ HWTEST_F(RadioStaticTestNg, RadioStaticTestNg005, TestSize.Level1) ASSERT_NE(node, nullptr); EXPECT_EQ(node->GetTag(), V2::RADIO_ETS_TAG); auto frameNode = AceType::RawPtr(node); - ASSERT_NE(node, nullptr); + ASSERT_NE(frameNode, nullptr); /** * @tc.steps: step2. create radio paintProperty. */ diff --git a/test/unittest/core/pattern/rating/BUILD.gn b/test/unittest/core/pattern/rating/BUILD.gn index 484b6fb4d9e34cd155a9b2851220c9e4f1b3c7e7..e4b719a412054f4e8b311ffa53648b4c58bffedf 100644 --- a/test/unittest/core/pattern/rating/BUILD.gn +++ b/test/unittest/core/pattern/rating/BUILD.gn @@ -18,5 +18,6 @@ ace_unittest("rating_test_ng") { sources = [ "rating_content_modifier_test_ng.cpp", "rating_test_ng.cpp", + "rating_model_static_test_ng.cpp", ] } diff --git a/test/unittest/core/pattern/rating/rating_model_static_test_ng.cpp b/test/unittest/core/pattern/rating/rating_model_static_test_ng.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4d7102a9e6752c09bcd085320cb7c90dc9585a4e --- /dev/null +++ b/test/unittest/core/pattern/rating/rating_model_static_test_ng.cpp @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include +#include + +#include "gtest/gtest.h" +#define private public +#define protected public +#include "base/geometry/offset.h" +#include "base/memory/ace_type.h" +#include "core/components/rating/rating_theme.h" +#include "core/components/theme/icon_theme.h" +#include "core/components_ng/base/view_stack_processor.h" +#include "core/components_ng/pattern/rating/rating_layout_property.h" +#include "core/components_ng/pattern/rating/rating_model_ng.h" +#include "core/components_ng/pattern/rating/rating_model_static.h" +#include "core/components_ng/pattern/rating/rating_paint_method.h" +#include "core/components_ng/pattern/rating/rating_pattern.h" +#include "core/components_ng/pattern/rating/rating_render_property.h" +#include "test/mock/core/render/mock_canvas_image.h" +#include "test/mock/core/rosen/mock_canvas.h" +#include "test/mock/core/rosen/testing_canvas.h" +#include "test/mock/core/common/mock_theme_manager.h" +#include "core/components_v2/inspector/inspector_constants.h" +#include "core/image/image_source_info.h" +#include "core/pipeline/base/constants.h" +#include "core/pipeline_ng/pipeline_context.h" +#include "test/mock/core/pipeline/mock_pipeline_context.h" +#include "core/components_ng/pattern/root/root_pattern.h" + +using namespace testing; +using namespace testing::ext; + +namespace OHOS::Ace::NG { +namespace { +const int32_t DEFAULT_STAR_NUM = 5; +const int32_t RATING_STAR_NUM = 10; +constexpr double DEFAULT_RATING_SCORE = 0.0; +constexpr double RATING_SCORE_3 = 3.5; +constexpr double DEFAULT_RATING_STEP_SIZE = 0.0; +constexpr double RATING_STEP_SIZE = 0.7; +const bool RATING_INDICATOR = true; +} // namespace + +class RatingStaticTestNg : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); +}; + +void RatingStaticTestNg::SetUpTestCase() +{ + MockPipelineContext::SetUp(); + auto themeManager = AceType::MakeRefPtr(); + EXPECT_CALL(*themeManager, GetTheme(_)).WillRepeatedly([](ThemeType type) -> RefPtr { + if (type == RatingTheme::TypeId()) { + return AceType::MakeRefPtr(); + } else if (type == IconTheme::TypeId()) { + return AceType::MakeRefPtr(); + } else { + return nullptr; + } + }); + MockPipelineContext::GetCurrent()->SetThemeManager(themeManager); +} + +void RatingStaticTestNg::TearDownTestCase() +{ + MockPipelineContext::GetCurrent()->themeManager_ = nullptr; + MockPipelineContext::TearDown(); +} + +/** + * @tc.name: RatingStaticTestNg001 + * @tc.desc: test rating SetStars. + * @tc.type: FUNC + */ +HWTEST_F(RatingStaticTestNg, RatingStaticTestNg001, TestSize.Level1) +{ + /** + * @tc.steps: step1. create rating frameNode. + */ + auto node = RatingModelNG::CreateFrameNode(ElementRegister::GetInstance()->MakeUniqueId()); + ASSERT_NE(node, nullptr); + EXPECT_EQ(node->GetTag(), V2::RATING_ETS_TAG); + auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); + /** + * @tc.steps: step2. create rating paintProperty. + */ + auto ratingLayoutrProperty = frameNode->GetLayoutProperty(); + ASSERT_NE(ratingLayoutrProperty, nullptr); + + /** + * @tc.steps: step3. test SetStars. + * @tc.expected: step3. the property value meet expectations. + */ + std::optional ratingStars = std::nullopt; + RatingModelStatic::SetStars(frameNode, ratingStars); + EXPECT_EQ(ratingLayoutrProperty->GetStars().value_or(5), DEFAULT_STAR_NUM); + ratingStars = RATING_STAR_NUM; + RatingModelStatic::SetStars(frameNode, ratingStars); + EXPECT_EQ(ratingLayoutrProperty->GetStars(), RATING_STAR_NUM); +} + +/** + * @tc.name: RatingStaticTestNg002 + * @tc.desc: test rating SetStepSize. + * @tc.type: FUNC + */ +HWTEST_F(RatingStaticTestNg, RatingStaticTestNg002, TestSize.Level1) +{ + /** + * @tc.steps: step1. create rating frameNode. + */ + auto node = RatingModelNG::CreateFrameNode(ElementRegister::GetInstance()->MakeUniqueId()); + ASSERT_NE(node, nullptr); + EXPECT_EQ(node->GetTag(), V2::RATING_ETS_TAG); + auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); + /** + * @tc.steps: step2. create rating paintProperty. + */ + auto ratingRenderProperty = frameNode->GetPaintProperty(); + ASSERT_NE(ratingRenderProperty, nullptr); + + /** + * @tc.steps: step3. test SetStepSize. + * @tc.expected: step3. the property value meet expectations. + */ + std::optional ratingStepSize = std::nullopt; + RatingModelStatic::SetStepSize(frameNode, ratingStepSize); + EXPECT_EQ(ratingRenderProperty->GetStepSize().value_or(0.0), DEFAULT_RATING_STEP_SIZE); + ratingStepSize = RATING_STEP_SIZE; + RatingModelStatic::SetStepSize(frameNode, ratingStepSize); + EXPECT_EQ(ratingRenderProperty->GetStepSize().value_or(0.0), RATING_STEP_SIZE); +} + +/** + * @tc.name: RatingStaticTestNg003 + * @tc.desc: test rating SetStepSize. + * @tc.type: FUNC + */ +HWTEST_F(RatingStaticTestNg, RatingStaticTestNg003, TestSize.Level1) +{ + /** + * @tc.steps: step1. create rating frameNode. + */ + auto node = RatingModelNG::CreateFrameNode(ElementRegister::GetInstance()->MakeUniqueId()); + ASSERT_NE(node, nullptr); + EXPECT_EQ(node->GetTag(), V2::RATING_ETS_TAG); + auto frameNode = AceType::RawPtr(node); + ASSERT_NE(frameNode, nullptr); + /** + * @tc.steps: step2. create rating paintProperty. + */ + auto ratingLayoutrProperty = frameNode->GetLayoutProperty(); + ASSERT_NE(ratingLayoutrProperty, nullptr); + auto ratingRenderProperty = frameNode->GetPaintProperty(); + ASSERT_NE(ratingRenderProperty, nullptr); + /** + * @tc.steps: step3. test SetRatingOptions. + * @tc.expected: step3. the property value meet expectations. + */ + std::optional ratingValue = std::nullopt; + std::optional ratingIndicator = std::nullopt; + RatingModelStatic::SetRatingOptions(frameNode, ratingValue, ratingIndicator); + EXPECT_EQ(ratingRenderProperty->GetRatingScore().value_or(0.0), DEFAULT_RATING_SCORE); + EXPECT_EQ(ratingLayoutrProperty->GetIndicator().value_or(false), false); + ratingValue = RATING_SCORE_3; + ratingIndicator = RATING_INDICATOR; + RatingModelStatic::SetRatingOptions(frameNode, ratingValue, ratingIndicator); + EXPECT_EQ(ratingRenderProperty->GetRatingScore().value_or(0.0), RATING_SCORE_3); + EXPECT_EQ(ratingLayoutrProperty->GetIndicator().value_or(false), RATING_INDICATOR); +} +} // namespace OHOS::Ace::NG \ No newline at end of file