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 "oobe_datashare_utils_test.h"
17
18 #include "errors.h"
19 #include "datashare_predicates.h"
20 #include "datashare_result_set.h"
21 #include "oobe_datashare_utils.h"
22 #include "datashare_values_bucket.h"
23 #include "oobe_manager.h"
24 #include "uri.h"
25
26 using namespace std;
27 using namespace testing::ext;
28
29 namespace OHOS {
30 namespace ResourceSchedule {
31 namespace {
32 const std::string KEYWORD = "basic_statement_agreed";
33 } // namespace
34
SetUpTestCase()35 void OOBEDataShareUtilsTest::SetUpTestCase() {}
36
TearDownTestCase()37 void OOBEDataShareUtilsTest::TearDownTestCase() {}
38
SetUp()39 void OOBEDataShareUtilsTest::SetUp() {}
40
TearDown()41 void OOBEDataShareUtilsTest::TearDown() {}
42
QueryDatabaseBeforeAssertions(int32_t res)43 void OOBEDataShareUtilsTest::QueryDatabaseBeforeAssertions(int32_t res)
44 {
45 std::string stringValue;
46 DataShareUtils::GetInstance().GetStringValue(KEYWORD, stringValue);
47 if (stringValue.empty()) {
48 EXPECT_NE(res, ERR_OK);
49 } else {
50 EXPECT_EQ(res, ERR_OK);
51 }
52 }
53
54 /**
55 * @tc.name: oobe dataShareUtils TestDataShareUtils_001
56 * @tc.desc: test the interface GetValue of dataShareUtils
57 * @tc.type: FUNC
58 * @tc.require: issueI97493
59 * @tc.author:zhumingjie
60 */
61 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_001, Function | MediumTest | Level0)
62 {
63 int32_t result = 0;
64 int32_t res = DataShareUtils::GetInstance().GetValue(KEYWORD, result);
65 QueryDatabaseBeforeAssertions(res);
66 }
67
68 /**
69 * @tc.name: oobe dataShareUtils TestDataShareUtils_002
70 * @tc.desc: test the interface GetValue of dataShareUtils
71 * @tc.type: FUNC
72 * @tc.require: issueI97493
73 * @tc.author:zhumingjie
74 */
75 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_002, Function | MediumTest | Level0)
76 {
77 int64_t result = 0;
78 int32_t res = DataShareUtils::GetInstance().GetValue(KEYWORD, result);
79 QueryDatabaseBeforeAssertions(res);
80 }
81
82 /**
83 * @tc.name: oobe dataShareUtils TestDataShareUtils_003
84 * @tc.desc: test the interface GetValue of dataShareUtils
85 * @tc.type: FUNC
86 * @tc.require: issueI97493
87 * @tc.author:zhumingjie
88 */
89 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_003, Function | MediumTest | Level0)
90 {
91 std::string result;
92 int32_t res = DataShareUtils::GetInstance().GetValue(KEYWORD, result);
93 QueryDatabaseBeforeAssertions(res);
94 }
95
96 /**
97 * @tc.name: oobe dataShareUtils TestDataShareUtils_004
98 * @tc.desc: test the interface GetValue of dataShareUtils
99 * @tc.type: FUNC
100 * @tc.require: issueI97493
101 * @tc.author:zhumingjie
102 */
103 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_004, Function | MediumTest | Level0)
104 {
105 bool result;
106 std::string stringValue;
107 DataShareUtils& dataShareUtils = DataShareUtils::GetInstance();
108 dataShareUtils.GetStringValue(KEYWORD, stringValue);
109 if (stringValue.empty()) {
110 int32_t res = dataShareUtils.GetValue(KEYWORD, result);
111 EXPECT_NE(res, ERR_OK);
112 } else {
113 int32_t res1 = dataShareUtils.GetValue(KEYWORD, result);
114 EXPECT_EQ(res1, ERR_INVALID_OPERATION);
115 }
116 }
117
118 /**
119 * @tc.name: oobe dataShareUtils TestDataShareUtils_005
120 * @tc.desc: test the interface GetStringValue of dataShareUtils
121 * @tc.type: FUNC
122 * @tc.require: issueI97493
123 * @tc.author:zhumingjie
124 */
125 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_005, Function | MediumTest | Level0)
126 {
127 std::string result;
128 int32_t ret1 = ResourceSchedule::DataShareUtils::GetInstance().GetStringValue(KEYWORD, result);
129 if (result.empty()) {
130 EXPECT_NE(ret1, ERR_OK);
131 } else {
132 EXPECT_EQ(ret1, ERR_OK);
133 }
134
135 int32_t ret2 = ResourceSchedule::DataShareUtils::GetInstance().GetStringValue("test", result);
136 EXPECT_NE(ret2, ERR_OK);
137 }
138
139 /**
140 * @tc.name: oobe dataShareUtils TestDataShareUtils_006
141 * @tc.desc: test the interface CreateDataShareHelper of dataShareUtils
142 * @tc.type: FUNC
143 * @tc.require: issueI97493
144 * @tc.author:zhumingjie
145 */
146 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_006, Function | MediumTest | Level0)
147 {
148 DataShareUtils& dataShareUtils = DataShareUtils::GetInstance();
149 dataShareUtils.remoteObj_ = nullptr;
150 std::shared_ptr<DataShare::DataShareHelper> helper = dataShareUtils.CreateDataShareHelper();
151 EXPECT_EQ(helper, nullptr);
152 }
153
154 /**
155 * @tc.name: oobe dataShareUtils TestDataShareUtils_007
156 * @tc.desc: test the interface CreateDataShareHelper of dataShareUtils
157 * @tc.type: FUNC
158 * @tc.require: issueI97493
159 * @tc.author:zhumingjie
160 */
161 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_007, Function | MediumTest | Level0)
162 {
163 DataShareUtils& dataShareUtils = DataShareUtils::GetInstance();
164 dataShareUtils.InitSystemAbilityManager();
165 std::shared_ptr<DataShare::DataShareHelper> helper = dataShareUtils.CreateDataShareHelper();
166 EXPECT_NE(helper, nullptr);
167 }
168
169 /**
170 * @tc.name: oobe dataShareUtils TestDataShareUtils_008
171 * @tc.desc: test the interface ReleaseDataShareHelper of dataShareUtils
172 * @tc.type: FUNC
173 * @tc.require: issueI97493
174 * @tc.author:zhumingjie
175 */
176 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_008, Function | MediumTest | Level0)
177 {
178 DataShareUtils& dataShareUtils = DataShareUtils::GetInstance();
179 dataShareUtils.InitSystemAbilityManager();
180 std::shared_ptr<DataShare::DataShareHelper> helper = dataShareUtils.CreateDataShareHelper();
181 bool flag = dataShareUtils.ReleaseDataShareHelper(helper);
182 EXPECT_TRUE(flag);
183 }
184
185 /**
186 * @tc.name: oobe dataShareUtils TestDataShareUtils_009
187 * @tc.desc: test the interface ReleaseDataShareHelper of dataShareUtils
188 * @tc.type: FUNC
189 * @tc.require: issueI97493
190 * @tc.author:zhumingjie
191 */
192 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_009, Function | MediumTest | Level0)
193 {
194 DataShareUtils& dataShareUtils = DataShareUtils::GetInstance();
195 dataShareUtils.InitSystemAbilityManager();
196 std::shared_ptr<DataShare::DataShareHelper> helper = dataShareUtils.CreateDataShareHelper();
197 helper = nullptr;
198 bool flag = dataShareUtils.ReleaseDataShareHelper(helper);
199 EXPECT_EQ(flag, false);
200 }
201
202 /**
203 * @tc.name: oobe dataShareUtils TestDataShareUtils_010
204 * @tc.desc: test the interface AssembleUri of dataShareUtils
205 * @tc.type: FUNC
206 * @tc.require: issueI97493
207 * @tc.author:zhumingjie
208 */
209 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_010, Function | MediumTest | Level0)
210 {
211 DataShareUtils& dataShareUtils = DataShareUtils::GetInstance();
212 EXPECT_EQ(dataShareUtils.AssembleUri(KEYWORD).uriString_.empty(), false);
213 }
214
215 /**
216 * @tc.name: oobe dataShareUtils TestDataShareUtils_011
217 * @tc.desc: test the interface Set and Get DataShareReadyFlag of dataShareUtils
218 * @tc.type: FUNC
219 * @tc.require: issueIA5MRN
220 * @tc.author:fengyang
221 */
222 HWTEST_F(OOBEDataShareUtilsTest, TestDataShareUtils_011, Function | MediumTest | Level0)
223 {
224 DataShareUtils& dataShareUtils = DataShareUtils::GetInstance();
225 dataShareUtils.SetDataShareReadyFlag(true);
226 EXPECT_EQ(dataShareUtils.GetDataShareReadyFlag(), true);
227 }
228 #undef private
229 #undef protected
230 } // namespace ResourceSchedule
231 } // namespace OHOS
232