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 "res_sched_json_util_test.h"
17
18 #include "res_sched_json_util.h"
19 #include "res_sched_file_util.h"
20
21 using namespace std;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace ResourceSchedule {
26 namespace {
27 const std::string TEST_INT_KEY = "intKey";
28 const std::string TEST_STRING_KEY = "stringKey";
29 const std::string TEST_BOOL_KEY = "boolKey";
30 const std::string TEST_ARRAY_KEY = "arrayKey";
31 const std::string TEST_OBJ_KEY = "objKey";
32 const std::string TEST_KEY = "testKey";
33 const std::string TEST_VALID_JSON = "etc/ressched/test_valid_json.json";
34 const std::string TEST_INVALID_JSON = "etc/ressched/test_invalid_json.json";
35 const std::string TEST_JSON_FILE_NAME = "test.json";
36
37 }
38
SetUpTestCase()39 void ResSchedJsonUtilTest::SetUpTestCase() {}
40
TearDownTestCase()41 void ResSchedJsonUtilTest::TearDownTestCase() {}
42
SetUp()43 void ResSchedJsonUtilTest::SetUp() {}
44
TearDown()45 void ResSchedJsonUtilTest::TearDown() {}
46
47 /**
48 * @tc.name: ResSchedJsonUtilTest ParseIntParameterFromJson_001
49 * @tc.desc: test ParseIntParameterFromJson
50 * @tc.type: FUNC
51 * @tc.require: issueIB8Y0E
52 */
53 HWTEST_F(ResSchedJsonUtilTest, ParseIntParameterFromJson_001, Function | MediumTest | Level0)
54 {
55 nlohmann::json testObj;
56 int32_t value = -1;
57 EXPECT_FALSE(ResCommonUtil::ParseIntParameterFromJson(TEST_INT_KEY, value, testObj));
58 EXPECT_EQ(value, -1);
59 testObj[TEST_KEY] = "test";
60 EXPECT_FALSE(ResCommonUtil::ParseIntParameterFromJson(TEST_INT_KEY, value, testObj));
61 EXPECT_EQ(value, -1);
62 EXPECT_FALSE(ResCommonUtil::ParseIntParameterFromJson("", value, testObj));
63 EXPECT_EQ(value, -1);
64 testObj[TEST_INT_KEY] = "test";
65 EXPECT_FALSE(ResCommonUtil::ParseIntParameterFromJson(TEST_INT_KEY, value, testObj));
66 EXPECT_EQ(value, -1);
67 testObj[TEST_INT_KEY] = "100";
68 EXPECT_TRUE(ResCommonUtil::ParseIntParameterFromJson(TEST_INT_KEY, value, testObj));
69 EXPECT_EQ(value, 100);
70 testObj[TEST_INT_KEY] = 100;
71 EXPECT_TRUE(ResCommonUtil::ParseIntParameterFromJson(TEST_INT_KEY, value, testObj));
72 EXPECT_EQ(value, 100);
73 }
74
75 /**
76 * @tc.name: ResSchedJsonUtilTest ParseStringParameterFromJson_001
77 * @tc.desc: test ParseStringParameterFromJson
78 * @tc.type: FUNC
79 * @tc.require: issueIB8Y0E
80 */
81 HWTEST_F(ResSchedJsonUtilTest, ParseStringParameterFromJson_001, Function | MediumTest | Level0)
82 {
83 nlohmann::json testObj;
84 std::string value = "";
85 EXPECT_FALSE(ResCommonUtil::ParseStringParameterFromJson(TEST_STRING_KEY, value, testObj));
86 EXPECT_EQ(value, "");
87 testObj[TEST_KEY] = "test";
88 EXPECT_FALSE(ResCommonUtil::ParseStringParameterFromJson("", value, testObj));
89 EXPECT_EQ(value, "");
90 EXPECT_FALSE(ResCommonUtil::ParseStringParameterFromJson(TEST_STRING_KEY, value, testObj));
91 EXPECT_EQ(value, "");
92 testObj[TEST_STRING_KEY] = 100;
93 EXPECT_FALSE(ResCommonUtil::ParseStringParameterFromJson(TEST_STRING_KEY, value, testObj));
94 EXPECT_EQ(value, "");
95 testObj[TEST_STRING_KEY] = "test";
96 EXPECT_TRUE(ResCommonUtil::ParseStringParameterFromJson(TEST_STRING_KEY, value, testObj));
97 EXPECT_EQ(value, "test");
98 }
99
100 /**
101 * @tc.name: ResSchedJsonUtilTest ParseBoolParameterFromJson_001
102 * @tc.desc: test ParseBoolParameterFromJson
103 * @tc.type: FUNC
104 * @tc.require: issueIB8Y0E
105 */
106 HWTEST_F(ResSchedJsonUtilTest, ParseBoolParameterFromJson_001, Function | MediumTest | Level0)
107 {
108 nlohmann::json testObj;
109 bool value = false;
110 EXPECT_FALSE(ResCommonUtil::ParseBoolParameterFromJson(TEST_BOOL_KEY, value, testObj));
111 EXPECT_FALSE(value);
112 testObj[TEST_KEY] = "test";
113 EXPECT_FALSE(ResCommonUtil::ParseBoolParameterFromJson("", value, testObj));
114 EXPECT_FALSE(value);
115 EXPECT_FALSE(ResCommonUtil::ParseBoolParameterFromJson(TEST_BOOL_KEY, value, testObj));
116 EXPECT_FALSE(value);
117 testObj[TEST_BOOL_KEY] = 100;
118 EXPECT_FALSE(ResCommonUtil::ParseBoolParameterFromJson(TEST_BOOL_KEY, value, testObj));
119 EXPECT_FALSE(value);
120 testObj[TEST_BOOL_KEY] = true;
121 EXPECT_TRUE(ResCommonUtil::ParseBoolParameterFromJson(TEST_BOOL_KEY, value, testObj));
122 EXPECT_TRUE(value);
123 }
124
125 /**
126 * @tc.name: ResSchedJsonUtilTest LoadFileToJsonObj_001
127 * @tc.desc: test LoadFileToJsonObj
128 * @tc.type: FUNC
129 * @tc.require: issueIB8Y0E
130 */
131 HWTEST_F(ResSchedJsonUtilTest, LoadFileToJsonObj_001, Function | MediumTest | Level0)
132 {
133 nlohmann::json testJsonObj;
134 EXPECT_FALSE(ResCommonUtil::LoadOneCfgFileToJsonObj("", testJsonObj));
135 EXPECT_FALSE(ResCommonUtil::LoadOneCfgFileToJsonObj(TEST_INVALID_JSON, testJsonObj));
136 EXPECT_TRUE(ResCommonUtil::LoadOneCfgFileToJsonObj(TEST_VALID_JSON, testJsonObj));
137 }
138
139 /**
140 * @tc.name: ResSchedJsonUtilTest GetArrayFromJson_001
141 * @tc.desc: test GetArrayFromJson
142 * @tc.type: FUNC
143 * @tc.require: issueIB8Y0E
144 */
145 HWTEST_F(ResSchedJsonUtilTest, GetArrayFromJson_001, Function | MediumTest | Level0)
146 {
147 nlohmann::json testObj;
148 nlohmann::json value;
149 EXPECT_FALSE(ResCommonUtil::GetArrayFromJson(testObj, TEST_ARRAY_KEY, value));
150 testObj[TEST_KEY] = "test";
151 EXPECT_FALSE(ResCommonUtil::GetArrayFromJson(testObj, "", value));
152 EXPECT_FALSE(ResCommonUtil::GetArrayFromJson(testObj, TEST_ARRAY_KEY, value));
153 testObj[TEST_ARRAY_KEY] = 100;
154 EXPECT_FALSE(ResCommonUtil::GetArrayFromJson(testObj, TEST_ARRAY_KEY, value));
155 nlohmann::json array = nlohmann::json::array();
156 array.push_back(1);
157 array.push_back(2);
158 array.push_back(3);
159 testObj[TEST_ARRAY_KEY] = array;
160 EXPECT_TRUE(ResCommonUtil::GetArrayFromJson(testObj, TEST_ARRAY_KEY, value));
161 }
162
163 /**
164 * @tc.name: ResSchedJsonUtilTest GetObjFromJson_001
165 * @tc.desc: test GetObjFromJson
166 * @tc.type: FUNC
167 * @tc.require: issueIB8Y0E
168 */
169 HWTEST_F(ResSchedJsonUtilTest, GetObjFromJson_001, Function | MediumTest | Level0)
170 {
171 nlohmann::json testObj;
172 nlohmann::json value;
173 EXPECT_FALSE(ResCommonUtil::GetObjFromJson(testObj, TEST_OBJ_KEY, value));
174 testObj[TEST_KEY] = "test";
175 EXPECT_FALSE(ResCommonUtil::GetObjFromJson(testObj, "", value));
176 EXPECT_FALSE(ResCommonUtil::GetObjFromJson(testObj, TEST_OBJ_KEY, value));
177 testObj[TEST_BOOL_KEY] = 100;
178 EXPECT_FALSE(ResCommonUtil::GetObjFromJson(testObj, TEST_OBJ_KEY, value));
179 nlohmann::json obj;
180 obj[TEST_KEY] = "test";
181 testObj[TEST_OBJ_KEY] = obj;
182 EXPECT_TRUE(ResCommonUtil::GetObjFromJson(testObj, TEST_OBJ_KEY, value));
183 }
184
185 /**
186 * @tc.name: ResSchedJsonUtilTest LoadContentToJsonObj_001
187 * @tc.desc: test LoadContentToJsonObj
188 * @tc.type: FUNC
189 * @tc.require: issueIB8Y0E
190 */
191 HWTEST_F(ResSchedJsonUtilTest, LoadContentToJsonObj_001, Function | MediumTest | Level0)
192 {
193 nlohmann::json testJson;
194 EXPECT_FALSE(ResCommonUtil::LoadContentToJsonObj("", testJson));
195 EXPECT_FALSE(ResCommonUtil::LoadContentToJsonObj("test{test}test", testJson));
196 EXPECT_TRUE(ResCommonUtil::LoadContentToJsonObj("{ \"testKey1\": \"test1\", \"testKey2\": \"test2\" }",
197 testJson));
198 }
199
200 /**
201 * @tc.name: ResSchedJsonUtilTest DumpJsonToString_001
202 * @tc.desc: test DumpJsonToString
203 * @tc.type: FUNC
204 * @tc.require: issueIB8Y0E
205 */
206 HWTEST_F(ResSchedJsonUtilTest, DumpJsonToString_001, Function | MediumTest | Level0)
207 {
208 nlohmann::json testJson;
209 EXPECT_TRUE(ResCommonUtil::LoadContentToJsonObj("{\"testKey1\":\"test1\",\"testKey2\":\"test2\"}", testJson));
210 std::string jsonStr;
211 ResCommonUtil::DumpJsonToString(testJson, jsonStr);
212 EXPECT_EQ(jsonStr, "{\"testKey1\":\"test1\",\"testKey2\":\"test2\"}");
213 }
214 } // namespace ResourceSchedule
215 } // namespace OHOS
216