• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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