14d949f91Sopenharmony_ci/* 24d949f91Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 34d949f91Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44d949f91Sopenharmony_ci * you may not use this file except in compliance with the License. 54d949f91Sopenharmony_ci * You may obtain a copy of the License at 64d949f91Sopenharmony_ci * 74d949f91Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84d949f91Sopenharmony_ci * 94d949f91Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104d949f91Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114d949f91Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124d949f91Sopenharmony_ci * See the License for the specific language governing permissions and 134d949f91Sopenharmony_ci * limitations under the License. 144d949f91Sopenharmony_ci */ 154d949f91Sopenharmony_ci 164d949f91Sopenharmony_ci#include "gtest/gtest.h" 174d949f91Sopenharmony_ci 184d949f91Sopenharmony_ci#include "effect_json_helper.h" 194d949f91Sopenharmony_ci 204d949f91Sopenharmony_ciusing namespace testing::ext; 214d949f91Sopenharmony_ciusing namespace OHOS::Media::Effect; 224d949f91Sopenharmony_ci 234d949f91Sopenharmony_cinamespace OHOS { 244d949f91Sopenharmony_cinamespace Media { 254d949f91Sopenharmony_cinamespace Effect { 264d949f91Sopenharmony_cinamespace Test { 274d949f91Sopenharmony_cinamespace { 284d949f91Sopenharmony_ci constexpr char const *IMAGE_EFFECT = "imageEffect"; 294d949f91Sopenharmony_ci constexpr char const *FILTERS = "filters"; 304d949f91Sopenharmony_ci constexpr char const *NAME = "name"; 314d949f91Sopenharmony_ci constexpr char const *BRIGHTNESS = "Brightness"; 324d949f91Sopenharmony_ci constexpr char const *VALUES = "values"; 334d949f91Sopenharmony_ci constexpr char const *FILTER_INTENSITY = "FilterIntensity"; 344d949f91Sopenharmony_ci constexpr char const *CONTRAST = "Contrast"; 354d949f91Sopenharmony_ci constexpr char const *IMAGE_EDIT = "imageEdit"; 364d949f91Sopenharmony_ci constexpr char const *FLOAT_TEST = "FloatTest"; 374d949f91Sopenharmony_ci constexpr char const *INT_TEST = "IntTest"; 384d949f91Sopenharmony_ci constexpr char const *UINT_TEST = "UintTest"; 394d949f91Sopenharmony_ci constexpr char const *DOUBLE_TEST = "DoubleTest"; 404d949f91Sopenharmony_ci constexpr char const *BOOL_TEST = "BoolTest"; 414d949f91Sopenharmony_ci constexpr char const *STRING_TEST = "StringTest"; 424d949f91Sopenharmony_ci constexpr char const *TEST_STR = "testStr"; 434d949f91Sopenharmony_ci} // namespace 444d949f91Sopenharmony_ci 454d949f91Sopenharmony_ciclass TestJsonHelper : public testing::Test { 464d949f91Sopenharmony_cipublic: 474d949f91Sopenharmony_ci TestJsonHelper() = default; 484d949f91Sopenharmony_ci 494d949f91Sopenharmony_ci ~TestJsonHelper() override = default; 504d949f91Sopenharmony_ci 514d949f91Sopenharmony_ci static void SetUpTestCase() {} 524d949f91Sopenharmony_ci 534d949f91Sopenharmony_ci static void TearDownTestCase() {} 544d949f91Sopenharmony_ci 554d949f91Sopenharmony_ci void SetUp() override 564d949f91Sopenharmony_ci { 574d949f91Sopenharmony_ci root_ = EFFECTJsonHelper::CreateObject(); 584d949f91Sopenharmony_ci } 594d949f91Sopenharmony_ci 604d949f91Sopenharmony_ci void TearDown() override 614d949f91Sopenharmony_ci { 624d949f91Sopenharmony_ci root_ = nullptr; 634d949f91Sopenharmony_ci } 644d949f91Sopenharmony_ci 654d949f91Sopenharmony_ci EffectJsonPtr root_; 664d949f91Sopenharmony_ci}; 674d949f91Sopenharmony_ci 684d949f91Sopenharmony_ciHWTEST_F(TestJsonHelper, Parse001, TestSize.Level0) 694d949f91Sopenharmony_ci{ 704d949f91Sopenharmony_ci std::string info = "{\"imageEffect\":{\"filters\":[{\"name\":\"Brightness\",\"values\":{\"FilterIntensity\":" 714d949f91Sopenharmony_ci "100.0}},{\"name\":\"Contrast\",\"values\":{\"FilterIntensity\":50.0}}],\"name\":\"imageEdit\"}}"; 724d949f91Sopenharmony_ci 734d949f91Sopenharmony_ci EffectJsonPtr root = EFFECTJsonHelper::ParseJsonData(info); 744d949f91Sopenharmony_ci ASSERT_NE(root, nullptr); 754d949f91Sopenharmony_ci ASSERT_TRUE(root->HasElement(IMAGE_EFFECT)); 764d949f91Sopenharmony_ci 774d949f91Sopenharmony_ci EffectJsonPtr imageEffect = root->GetElement(IMAGE_EFFECT); 784d949f91Sopenharmony_ci ASSERT_NE(imageEffect, nullptr); 794d949f91Sopenharmony_ci ASSERT_TRUE(imageEffect->HasElement(FILTERS)); 804d949f91Sopenharmony_ci ASSERT_TRUE(imageEffect->HasElement(NAME)); 814d949f91Sopenharmony_ci 824d949f91Sopenharmony_ci EffectJsonPtr filterObject = imageEffect->GetElement(FILTERS); 834d949f91Sopenharmony_ci ASSERT_NE(filterObject, nullptr); 844d949f91Sopenharmony_ci ASSERT_TRUE(filterObject->IsArray()); 854d949f91Sopenharmony_ci std::vector<EffectJsonPtr> filters = filterObject->GetArray(); 864d949f91Sopenharmony_ci ASSERT_EQ(filters.size(), 2); 874d949f91Sopenharmony_ci 884d949f91Sopenharmony_ci filters = imageEffect->GetArray(FILTERS); 894d949f91Sopenharmony_ci ASSERT_EQ(filters.size(), 2); 904d949f91Sopenharmony_ci 914d949f91Sopenharmony_ci ASSERT_NE(filters[0], nullptr); 924d949f91Sopenharmony_ci ASSERT_STREQ(filters[0]->GetString(NAME).c_str(), BRIGHTNESS); 934d949f91Sopenharmony_ci EffectJsonPtr values = filters[0]->GetElement(VALUES); 944d949f91Sopenharmony_ci ASSERT_NE(values, nullptr); 954d949f91Sopenharmony_ci ASSERT_EQ(values->GetFloat(FILTER_INTENSITY), 100.0f); 964d949f91Sopenharmony_ci 974d949f91Sopenharmony_ci ASSERT_NE(filters[1], nullptr); 984d949f91Sopenharmony_ci ASSERT_STREQ(filters[1]->GetString(NAME).c_str(), CONTRAST); 994d949f91Sopenharmony_ci values = filters[1]->GetElement(VALUES); 1004d949f91Sopenharmony_ci ASSERT_NE(values, nullptr); 1014d949f91Sopenharmony_ci ASSERT_EQ(values->GetFloat(FILTER_INTENSITY), 50.0f); 1024d949f91Sopenharmony_ci 1034d949f91Sopenharmony_ci EffectJsonPtr name = imageEffect->GetElement(NAME); 1044d949f91Sopenharmony_ci ASSERT_NE(name, nullptr); 1054d949f91Sopenharmony_ci ASSERT_STREQ(name->GetString().c_str(), IMAGE_EDIT); 1064d949f91Sopenharmony_ci ASSERT_STREQ(imageEffect->GetString(NAME).c_str(), IMAGE_EDIT); 1074d949f91Sopenharmony_ci} 1084d949f91Sopenharmony_ci 1094d949f91Sopenharmony_ciHWTEST_F(TestJsonHelper, Parse002, TestSize.Level0) 1104d949f91Sopenharmony_ci{ 1114d949f91Sopenharmony_ci std::string info = "{\"imageEffect\":{\"filters\":[{\"name\":\"Brightness\",\"values\":{\"FloatTest\":" 1124d949f91Sopenharmony_ci "100.0,\"IntTest\":-10,\"UintTest\":20,\"DoubleTest\":30.5,\"BoolTest\":true,\"StringTest\":\"testStr\"}}," 1134d949f91Sopenharmony_ci "{\"name\":\"Contrast\",\"values\":{\"FilterIntensity\":50.0}}],\"name\":\"imageEdit\"}}"; 1144d949f91Sopenharmony_ci 1154d949f91Sopenharmony_ci EffectJsonPtr root = EFFECTJsonHelper::ParseJsonData(info); 1164d949f91Sopenharmony_ci ASSERT_NE(root, nullptr); 1174d949f91Sopenharmony_ci EffectJsonPtr imageEffect = root->GetElement(IMAGE_EFFECT); 1184d949f91Sopenharmony_ci ASSERT_NE(imageEffect, nullptr); 1194d949f91Sopenharmony_ci std::vector<EffectJsonPtr> filters = imageEffect->GetArray(FILTERS); 1204d949f91Sopenharmony_ci ASSERT_EQ(filters.size(), 2); 1214d949f91Sopenharmony_ci EffectJsonPtr values = filters[0]->GetElement(VALUES); 1224d949f91Sopenharmony_ci ASSERT_NE(values, nullptr); 1234d949f91Sopenharmony_ci 1244d949f91Sopenharmony_ci ASSERT_EQ(values->GetFloat(FLOAT_TEST), 100.0f); 1254d949f91Sopenharmony_ci ASSERT_EQ(values->GetInt(INT_TEST), -10); 1264d949f91Sopenharmony_ci ASSERT_EQ(values->GetUInt(UINT_TEST), 20); 1274d949f91Sopenharmony_ci ASSERT_EQ(values->GetDouble(DOUBLE_TEST), 30.5f); 1284d949f91Sopenharmony_ci ASSERT_EQ(values->GetBool(BOOL_TEST), true); 1294d949f91Sopenharmony_ci ASSERT_EQ(values->GetString(STRING_TEST), TEST_STR); 1304d949f91Sopenharmony_ci 1314d949f91Sopenharmony_ci EffectJsonPtr filtersObject = imageEffect->GetElement(FILTERS); 1324d949f91Sopenharmony_ci ASSERT_NE(filtersObject, nullptr); 1334d949f91Sopenharmony_ci EffectJsonPtr replaceFilters = EFFECTJsonHelper::CreateObject(); 1344d949f91Sopenharmony_ci ASSERT_TRUE(replaceFilters->Put(NAME, TEST_STR)); 1354d949f91Sopenharmony_ci ASSERT_TRUE(imageEffect->Replace(FILTERS, replaceFilters)); 1364d949f91Sopenharmony_ci ASSERT_STREQ(replaceFilters->GetString(NAME).c_str(), TEST_STR); 1374d949f91Sopenharmony_ci} 1384d949f91Sopenharmony_ci 1394d949f91Sopenharmony_ciHWTEST_F(TestJsonHelper, Create001, TestSize.Level0) 1404d949f91Sopenharmony_ci{ 1414d949f91Sopenharmony_ci // brightness 1424d949f91Sopenharmony_ci EffectJsonPtr brightnessValue = EFFECTJsonHelper::CreateObject(); 1434d949f91Sopenharmony_ci ASSERT_NE(brightnessValue, nullptr); 1444d949f91Sopenharmony_ci float brightnessFilterIntensity = -100.0f; 1454d949f91Sopenharmony_ci ASSERT_TRUE(brightnessValue->Put(FILTER_INTENSITY, brightnessFilterIntensity)); 1464d949f91Sopenharmony_ci 1474d949f91Sopenharmony_ci EffectJsonPtr brightness = EFFECTJsonHelper::CreateObject(); 1484d949f91Sopenharmony_ci ASSERT_NE(brightness, nullptr); 1494d949f91Sopenharmony_ci ASSERT_TRUE(brightness->Put(NAME, BRIGHTNESS)); 1504d949f91Sopenharmony_ci ASSERT_TRUE(brightness->Put(VALUES, brightnessValue)); 1514d949f91Sopenharmony_ci 1524d949f91Sopenharmony_ci // contrast 1534d949f91Sopenharmony_ci EffectJsonPtr contrastValue = EFFECTJsonHelper::CreateObject(); 1544d949f91Sopenharmony_ci ASSERT_NE(contrastValue, nullptr); 1554d949f91Sopenharmony_ci float contrastFilterIntensity = -50.0f; 1564d949f91Sopenharmony_ci ASSERT_TRUE(contrastValue->Put(FILTER_INTENSITY, contrastFilterIntensity)); 1574d949f91Sopenharmony_ci 1584d949f91Sopenharmony_ci EffectJsonPtr contrast = EFFECTJsonHelper::CreateObject(); 1594d949f91Sopenharmony_ci ASSERT_NE(contrast, nullptr); 1604d949f91Sopenharmony_ci ASSERT_TRUE(contrast->Put(NAME, CONTRAST)); 1614d949f91Sopenharmony_ci ASSERT_TRUE(contrast->Put(VALUES, contrastValue)); 1624d949f91Sopenharmony_ci 1634d949f91Sopenharmony_ci // array filters 1644d949f91Sopenharmony_ci EffectJsonPtr filters = EFFECTJsonHelper::CreateArray(); 1654d949f91Sopenharmony_ci ASSERT_NE(filters, nullptr); 1664d949f91Sopenharmony_ci ASSERT_TRUE(filters->Add(brightness)); 1674d949f91Sopenharmony_ci ASSERT_TRUE(filters->Add(contrast)); 1684d949f91Sopenharmony_ci 1694d949f91Sopenharmony_ci // imageEffect 1704d949f91Sopenharmony_ci EffectJsonPtr imageEffect = EFFECTJsonHelper::CreateObject(); 1714d949f91Sopenharmony_ci ASSERT_NE(imageEffect, nullptr); 1724d949f91Sopenharmony_ci ASSERT_TRUE(imageEffect->Put(FILTERS, filters)); 1734d949f91Sopenharmony_ci ASSERT_TRUE(imageEffect->Put(NAME, IMAGE_EDIT)); 1744d949f91Sopenharmony_ci 1754d949f91Sopenharmony_ci EffectJsonPtr root = EFFECTJsonHelper::CreateObject(); 1764d949f91Sopenharmony_ci ASSERT_NE(root, nullptr); 1774d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(IMAGE_EFFECT, imageEffect)); 1784d949f91Sopenharmony_ci 1794d949f91Sopenharmony_ci std::string info = "{\"imageEffect\":{\"filters\":[{\"name\":\"Brightness\",\"values\":{\"FilterIntensity\":" 1804d949f91Sopenharmony_ci "-100}},{\"name\":\"Contrast\",\"values\":{\"FilterIntensity\":-50}}],\"name\":\"imageEdit\"}}"; 1814d949f91Sopenharmony_ci ASSERT_STREQ(root->ToString().c_str(), info.c_str()); 1824d949f91Sopenharmony_ci} 1834d949f91Sopenharmony_ci 1844d949f91Sopenharmony_ciHWTEST_F(TestJsonHelper, CreateObject001, TestSize.Level0) 1854d949f91Sopenharmony_ci{ 1864d949f91Sopenharmony_ci EffectJsonPtr root = EFFECTJsonHelper::CreateObject(); 1874d949f91Sopenharmony_ci ASSERT_NE(root, nullptr); 1884d949f91Sopenharmony_ci ASSERT_TRUE(root->IsObject()); 1894d949f91Sopenharmony_ci float floatValue = 50.0f; 1904d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(FLOAT_TEST, floatValue)); 1914d949f91Sopenharmony_ci int32_t intValue = -10; 1924d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(INT_TEST, intValue)); 1934d949f91Sopenharmony_ci uint32_t uintValue = 20; 1944d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(UINT_TEST, uintValue)); 1954d949f91Sopenharmony_ci double doubleValue = 30.5; 1964d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(DOUBLE_TEST, doubleValue)); 1974d949f91Sopenharmony_ci bool boolValue = true; 1984d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(BOOL_TEST, boolValue)); 1994d949f91Sopenharmony_ci std::string strValue = TEST_STR; 2004d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(STRING_TEST, strValue)); 2014d949f91Sopenharmony_ci ASSERT_FALSE(root->Put(STRING_TEST, (char *)nullptr)); 2024d949f91Sopenharmony_ci 2034d949f91Sopenharmony_ci std::string info = "{\"FloatTest\":50,\"IntTest\":-10,\"UintTest\":20,\"DoubleTest\":30.5,\"BoolTest\":true," 2044d949f91Sopenharmony_ci "\"StringTest\":\"testStr\"}"; 2054d949f91Sopenharmony_ci 2064d949f91Sopenharmony_ci ASSERT_STREQ(root->ToString().c_str(), info.c_str()); 2074d949f91Sopenharmony_ci} 2084d949f91Sopenharmony_ci 2094d949f91Sopenharmony_ciHWTEST_F(TestJsonHelper, CreateArray001, TestSize.Level0) 2104d949f91Sopenharmony_ci{ 2114d949f91Sopenharmony_ci // float 2124d949f91Sopenharmony_ci EffectJsonPtr floatRoot = EFFECTJsonHelper::CreateArray(); 2134d949f91Sopenharmony_ci ASSERT_NE(floatRoot, nullptr); 2144d949f91Sopenharmony_ci float floatValue1 = 50.0f; 2154d949f91Sopenharmony_ci float floatValue2 = -20.0f; 2164d949f91Sopenharmony_ci ASSERT_TRUE(floatRoot->Add(floatValue1)); 2174d949f91Sopenharmony_ci ASSERT_TRUE(floatRoot->Add(floatValue2)); 2184d949f91Sopenharmony_ci std::vector<EffectJsonPtr> floatValues = floatRoot->GetArray(); 2194d949f91Sopenharmony_ci ASSERT_EQ(floatValues.size(), 2); 2204d949f91Sopenharmony_ci ASSERT_EQ(floatValues[0]->GetFloat(), floatValue1); 2214d949f91Sopenharmony_ci ASSERT_EQ(floatValues[1]->GetFloat(), floatValue2); 2224d949f91Sopenharmony_ci 2234d949f91Sopenharmony_ci // int 2244d949f91Sopenharmony_ci EffectJsonPtr intRoot = EFFECTJsonHelper::CreateArray(); 2254d949f91Sopenharmony_ci ASSERT_NE(intRoot, nullptr); 2264d949f91Sopenharmony_ci int32_t intValue1 = 50; 2274d949f91Sopenharmony_ci int32_t intValue2 = -20; 2284d949f91Sopenharmony_ci int32_t intValue3 = 10; 2294d949f91Sopenharmony_ci ASSERT_TRUE(intRoot->Add(intValue1)); 2304d949f91Sopenharmony_ci ASSERT_TRUE(intRoot->Add(intValue2)); 2314d949f91Sopenharmony_ci ASSERT_TRUE(intRoot->Add(intValue3)); 2324d949f91Sopenharmony_ci std::vector<EffectJsonPtr> intValues = intRoot->GetArray(); 2334d949f91Sopenharmony_ci ASSERT_EQ(intValues.size(), 3); 2344d949f91Sopenharmony_ci ASSERT_EQ(intValues[0]->GetInt(), intValue1); 2354d949f91Sopenharmony_ci ASSERT_EQ(intValues[1]->GetInt(), intValue2); 2364d949f91Sopenharmony_ci ASSERT_EQ(intValues[2]->GetInt(), intValue3); 2374d949f91Sopenharmony_ci 2384d949f91Sopenharmony_ci // uint 2394d949f91Sopenharmony_ci EffectJsonPtr uintRoot = EFFECTJsonHelper::CreateArray(); 2404d949f91Sopenharmony_ci ASSERT_NE(uintRoot, nullptr); 2414d949f91Sopenharmony_ci uint32_t uintValue = 50; 2424d949f91Sopenharmony_ci ASSERT_TRUE(uintRoot->Add(uintValue)); 2434d949f91Sopenharmony_ci std::vector<EffectJsonPtr> uintValues = uintRoot->GetArray(); 2444d949f91Sopenharmony_ci ASSERT_EQ(uintValues.size(), 1); 2454d949f91Sopenharmony_ci ASSERT_EQ(uintValues[0]->GetUInt(), uintValue); 2464d949f91Sopenharmony_ci} 2474d949f91Sopenharmony_ci 2484d949f91Sopenharmony_ciHWTEST_F(TestJsonHelper, CreateArray002, TestSize.Level0) 2494d949f91Sopenharmony_ci{ 2504d949f91Sopenharmony_ci // double 2514d949f91Sopenharmony_ci EffectJsonPtr doubleRoot = EFFECTJsonHelper::CreateArray(); 2524d949f91Sopenharmony_ci double doubleValue = 30.5; 2534d949f91Sopenharmony_ci ASSERT_TRUE(doubleRoot->Add(doubleValue)); 2544d949f91Sopenharmony_ci std::vector<EffectJsonPtr> doubleValues = doubleRoot->GetArray(); 2554d949f91Sopenharmony_ci ASSERT_EQ(doubleValues.size(), 1); 2564d949f91Sopenharmony_ci ASSERT_DOUBLE_EQ(doubleValues[0]->GetDouble(), doubleValue); 2574d949f91Sopenharmony_ci 2584d949f91Sopenharmony_ci // bool 2594d949f91Sopenharmony_ci EffectJsonPtr boolRoot = EFFECTJsonHelper::CreateArray(); 2604d949f91Sopenharmony_ci bool boolValue = true; 2614d949f91Sopenharmony_ci ASSERT_TRUE(boolRoot->Add(boolValue)); 2624d949f91Sopenharmony_ci std::vector<EffectJsonPtr> boolValues = boolRoot->GetArray(); 2634d949f91Sopenharmony_ci ASSERT_EQ(boolValues.size(), 1); 2644d949f91Sopenharmony_ci ASSERT_DOUBLE_EQ(boolValues[0]->GetBool(), boolValue); 2654d949f91Sopenharmony_ci 2664d949f91Sopenharmony_ci // string 2674d949f91Sopenharmony_ci EffectJsonPtr stringRoot = EFFECTJsonHelper::CreateArray(); 2684d949f91Sopenharmony_ci ASSERT_TRUE(stringRoot->Add(TEST_STR)); 2694d949f91Sopenharmony_ci ASSERT_TRUE(stringRoot->Add(std::string(TEST_STR))); 2704d949f91Sopenharmony_ci std::vector<EffectJsonPtr> strValues = stringRoot->GetArray(); 2714d949f91Sopenharmony_ci ASSERT_EQ(strValues.size(), 2); 2724d949f91Sopenharmony_ci ASSERT_STREQ(strValues[0]->GetString().c_str(), TEST_STR); 2734d949f91Sopenharmony_ci ASSERT_STREQ(strValues[1]->GetString().c_str(), TEST_STR); 2744d949f91Sopenharmony_ci} 2754d949f91Sopenharmony_ci 2764d949f91Sopenharmony_ciHWTEST_F(TestJsonHelper, Replace001, TestSize.Level0) 2774d949f91Sopenharmony_ci{ 2784d949f91Sopenharmony_ci std::string info = "{\"imageEffect\":{\"values\":{\"FloatTest\":50.1,\"IntTest\":-10,\"UintTest\":20," 2794d949f91Sopenharmony_ci "\"DoubleTest\":30.5,\"BoolTest\":true,\"StringTest\":\"testStr\"}}}"; 2804d949f91Sopenharmony_ci 2814d949f91Sopenharmony_ci EffectJsonPtr root = EFFECTJsonHelper::ParseJsonData(info); 2824d949f91Sopenharmony_ci ASSERT_NE(root, nullptr); 2834d949f91Sopenharmony_ci EffectJsonPtr imageEffect = root->GetElement(IMAGE_EFFECT); 2844d949f91Sopenharmony_ci ASSERT_NE(imageEffect, nullptr); 2854d949f91Sopenharmony_ci EffectJsonPtr values = imageEffect->GetElement(VALUES); 2864d949f91Sopenharmony_ci ASSERT_NE(values, nullptr); 2874d949f91Sopenharmony_ci 2884d949f91Sopenharmony_ci float floatValue = 70.0f; 2894d949f91Sopenharmony_ci ASSERT_TRUE(values->Replace(FLOAT_TEST, floatValue)); 2904d949f91Sopenharmony_ci int32_t intValue = -50; 2914d949f91Sopenharmony_ci ASSERT_TRUE(values->Replace(INT_TEST, intValue)); 2924d949f91Sopenharmony_ci uint32_t uintValue = 50; 2934d949f91Sopenharmony_ci ASSERT_TRUE(values->Replace(UINT_TEST, uintValue)); 2944d949f91Sopenharmony_ci double doubleValue = 50.4; 2954d949f91Sopenharmony_ci ASSERT_TRUE(values->Replace(DOUBLE_TEST, doubleValue)); 2964d949f91Sopenharmony_ci bool boolValue = false; 2974d949f91Sopenharmony_ci ASSERT_TRUE(values->Replace(BOOL_TEST, boolValue)); 2984d949f91Sopenharmony_ci std::string strValue = "test"; 2994d949f91Sopenharmony_ci ASSERT_TRUE(values->Replace(STRING_TEST, strValue)); 3004d949f91Sopenharmony_ci 3014d949f91Sopenharmony_ci ASSERT_EQ(values->GetFloat(FLOAT_TEST), floatValue); 3024d949f91Sopenharmony_ci ASSERT_EQ(values->GetInt(INT_TEST), intValue); 3034d949f91Sopenharmony_ci ASSERT_EQ(values->GetUInt(UINT_TEST), uintValue); 3044d949f91Sopenharmony_ci ASSERT_DOUBLE_EQ(values->GetDouble(DOUBLE_TEST), doubleValue); 3054d949f91Sopenharmony_ci ASSERT_EQ(values->GetBool(BOOL_TEST), boolValue); 3064d949f91Sopenharmony_ci ASSERT_STREQ(values->GetString(STRING_TEST).c_str(), strValue.c_str()); 3074d949f91Sopenharmony_ci 3084d949f91Sopenharmony_ci std::string strValue1 = "test1"; 3094d949f91Sopenharmony_ci const char *strValue1Ptr = strValue1.c_str(); 3104d949f91Sopenharmony_ci ASSERT_TRUE(values->Replace(STRING_TEST, strValue1Ptr)); 3114d949f91Sopenharmony_ci ASSERT_STREQ(values->GetString(STRING_TEST).c_str(), strValue1Ptr); 3124d949f91Sopenharmony_ci 3134d949f91Sopenharmony_ci ASSERT_FALSE(values->Replace(std::string(STRING_TEST), (char *)nullptr)); 3144d949f91Sopenharmony_ci} 3154d949f91Sopenharmony_ci 3164d949f91Sopenharmony_ciHWTEST_F(TestJsonHelper, Abnormal_001, TestSize.Level0) 3174d949f91Sopenharmony_ci{ 3184d949f91Sopenharmony_ci EffectJsonPtr root = EFFECTJsonHelper::CreateObject(false); 3194d949f91Sopenharmony_ci ASSERT_NE(root, nullptr); 3204d949f91Sopenharmony_ci ASSERT_TRUE(root->IsObject()); 3214d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(INT_TEST, 10)); 3224d949f91Sopenharmony_ci ASSERT_TRUE(root->Put(STRING_TEST, TEST_STR)); 3234d949f91Sopenharmony_ci 3244d949f91Sopenharmony_ci EffectJsonPtr intKeyJsonPtr = root->GetElement(INT_TEST); 3254d949f91Sopenharmony_ci ASSERT_NE(intKeyJsonPtr, nullptr); 3264d949f91Sopenharmony_ci ASSERT_TRUE(intKeyJsonPtr->GetString().empty()); 3274d949f91Sopenharmony_ci 3284d949f91Sopenharmony_ci EffectJsonPtr stringKeyJsonPtr = root->GetElement(STRING_TEST); 3294d949f91Sopenharmony_ci ASSERT_NE(stringKeyJsonPtr, nullptr); 3304d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetInt(), 0); 3314d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetInt(INT_TEST, INT32_MAX), INT32_MAX); 3324d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetUInt(), 0); 3334d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetUInt(INT_TEST, UINT32_MAX), UINT32_MAX); 3344d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetFloat(), 0); 3354d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetFloat(INT_TEST, 0), 0); 3364d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetDouble(), 0); 3374d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetDouble(INT_TEST, 0), 0); 3384d949f91Sopenharmony_ci ASSERT_FALSE(stringKeyJsonPtr->GetBool()); 3394d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetBool(INT_TEST, true), true); 3404d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetArray().size(), 0); 3414d949f91Sopenharmony_ci ASSERT_EQ(stringKeyJsonPtr->GetArray(INT_TEST).size(), 0); 3424d949f91Sopenharmony_ci 3434d949f91Sopenharmony_ci ASSERT_EQ(root->GetUInt(STRING_TEST, UINT32_MAX), UINT32_MAX); 3444d949f91Sopenharmony_ci ASSERT_EQ(root->GetFloat(STRING_TEST, 0), 0); 3454d949f91Sopenharmony_ci ASSERT_EQ(root->GetDouble(STRING_TEST, 0), 0); 3464d949f91Sopenharmony_ci ASSERT_EQ(root->GetBool(STRING_TEST, true), true); 3474d949f91Sopenharmony_ci ASSERT_EQ(root->GetArray(STRING_TEST).size(), 0); 3484d949f91Sopenharmony_ci 3494d949f91Sopenharmony_ci EffectJsonPtr boolKeyJsonPtr = root->GetElement(BOOL_TEST); 3504d949f91Sopenharmony_ci ASSERT_EQ(boolKeyJsonPtr, nullptr); 3514d949f91Sopenharmony_ci} 3524d949f91Sopenharmony_ci} // namespace Test 3534d949f91Sopenharmony_ci} // namespace Effect 3544d949f91Sopenharmony_ci} // namespace Media 3554d949f91Sopenharmony_ci} // namespace OHOS