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