• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 "gtest/gtest.h"
17 #include "advanced_aggregation_data_roaming_observer.h"
18 #include "advanced_datashare_helper.h"
19 #include "datashare_helper.h"
20 #include "advanced_datashare_helper.h"
21 #include "mock_datashare.h"
22 
23 using namespace testing::ext;
24 
25 extern void MockGetSystemAbilityManager(bool mockRet);
26 
27 namespace OHOS {
28 namespace Notification {
29 
30 // Test suite
31 class AdvancedDatashareHelperTest : public ::testing::Test {
32 public:
SetUpTestCase()33     static void SetUpTestCase() {}
TearDownTestCase()34     static void TearDownTestCase() {}
SetUp()35     void SetUp() override {}
TearDown()36     void TearDown() override {}
37 };
38 
39 // Test cases
40 HWTEST_F(AdvancedDatashareHelperTest, Query_0001, Function | SmallTest | Level1)
41 {
42     MockGetSystemAbilityManager(false);
43     AdvancedDatashareHelper::SetIsDataShareReady(true);
44     AdvancedDatashareHelper advancedDatashareHelper;
45     int32_t userId = 100;
46     Uri enableUri(advancedDatashareHelper.GetFocusModeEnableUri(userId));
47     std::string enable;
48     bool ret = advancedDatashareHelper.Query(enableUri, KEY_FOCUS_MODE_ENABLE, enable);
49 
50     EXPECT_EQ(ret, true);
51 }
52 
53 HWTEST_F(AdvancedDatashareHelperTest, Query_0002, Function | SmallTest | Level1)
54 {
55     AdvancedDatashareHelper::SetIsDataShareReady(false);
56     MockGetSystemAbilityManager(false);
57     AdvancedDatashareHelper advancedDatashareHelper;
58     int32_t userId = 100;
59     Uri enableUri(advancedDatashareHelper.GetFocusModeEnableUri(userId));
60     std::string enable;
61     bool ret = advancedDatashareHelper.Query(enableUri, KEY_FOCUS_MODE_ENABLE, enable);
62     EXPECT_EQ(ret, false);
63 
64     AdvancedDatashareHelper::SetIsDataShareReady(true);
65     MockIsFailedToQueryDataShareResultSet(true);
66     ret = advancedDatashareHelper.Query(enableUri, KEY_FOCUS_MODE_ENABLE, enable);
67     EXPECT_EQ(ret, false);
68 
69     MockIsFailedGoToFirstRow(1);
70     MockIsFailedToQueryDataShareResultSet(false);
71     ret = advancedDatashareHelper.Query(enableUri, KEY_FOCUS_MODE_ENABLE, enable);
72     EXPECT_EQ(ret, false);
73 }
74 
75 // Test cases
76 HWTEST_F(AdvancedDatashareHelperTest, QueryContact_0001, Function | SmallTest | Level1)
77 {
78     MockGetSystemAbilityManager(false);
79     MockSetRowCount(0);
80     MockIsFailedToCreateDataShareHelper(true);
81     MockIsFailedGoToFirstRow(0);
82 
83     AdvancedDatashareHelper advancedDatashareHelper;
84     std::string uri = "datashare:///com.ohos.contactsdataability/contacts/contact_data?Proxy=true";
85     Uri contactUri(uri);
86     std::string phoneNumber = "11111111111";
87 
88     bool ret = advancedDatashareHelper.QueryContact(
89         contactUri, phoneNumber, "6", "1", "true");
90     EXPECT_EQ(ret, 1);
91 
92     MockIsFailedToCreateDataShareHelper(false);
93     AdvancedDatashareHelper::SetIsDataShareReady(true);
94     ret = advancedDatashareHelper.QueryContact(
95         contactUri, phoneNumber, "6", "1", "true");
96     EXPECT_EQ(ret, 1);
97 }
98 
99 HWTEST_F(AdvancedDatashareHelperTest, QueryContact_0002, Function | SmallTest | Level1)
100 {
101     std::string str = "0";
102     MockGetStringValue(str);
103     MockGetSystemAbilityManager(false);
104     MockIsFailedToQueryDataShareResultSet(false);
105     MockIsFailedToCreateDataShareHelper(false);
106     MockSetRowCount(1);
107     MockGoToGetNextRow(-1);
108     MockIsFailedGoToFirstRow(0);
109 
110     AdvancedDatashareHelper advancedDatashareHelper;
111     std::string uri = advancedDatashareHelper.GetFocusModeRepeatCallUri(0);
112     Uri contactUri(uri);
113     std::string phoneNumber = "1111";
114     AdvancedDatashareHelper::SetIsDataShareReady(true);
115 
116     bool ret = advancedDatashareHelper.QueryContact(
117         contactUri, phoneNumber, "5", "1", "true");
118     EXPECT_EQ(ret, 0);
119 
120     str = "1";
121     MockGetStringValue(str);
122     ret = advancedDatashareHelper.QueryContact(
123         contactUri, phoneNumber, "5", "1", "true");
124     EXPECT_EQ(ret, 1);
125 
126     str = "2";
127     MockGetStringValue(str);
128     ret = advancedDatashareHelper.QueryContact(
129         contactUri, phoneNumber, "5", "1", "true");
130     EXPECT_EQ(ret, 0);
131 
132     ret = advancedDatashareHelper.QueryContact(
133         contactUri, phoneNumber, "10", "1", "true");
134     EXPECT_EQ(ret, 1);
135 }
136 
137 HWTEST_F(AdvancedDatashareHelperTest, QueryContact_0003, Function | SmallTest | Level1)
138 {
139     MockGetSystemAbilityManager(false);
140     MockIsFailedToCreateDataShareHelper(true);
141     MockIsFailedToQueryDataShareResultSet(true);
142     MockIsFailedGoToFirstRow(0);
143     AdvancedDatashareHelper advancedDatashareHelper;
144     std::string uri = advancedDatashareHelper.GetIntelligentExperienceUri(0);
145     Uri contactUri(uri);
146     std::string phoneNumber = "11111111111";
147 
148     int ret = advancedDatashareHelper.QueryContact(
149         contactUri, phoneNumber, "10", "1", "true");
150     EXPECT_EQ(ret, -1);
151 
152     MockIsFailedToCreateDataShareHelper(false);
153     ret = advancedDatashareHelper.QueryContact(
154         contactUri, phoneNumber, "10", "1", "true");
155     EXPECT_EQ(ret, -1);
156 }
157 
158 // Test cases
159 HWTEST_F(AdvancedDatashareHelperTest, QueryContact_0004, Function | SmallTest | Level1)
160 {
161     MockGetSystemAbilityManager(false);
162     MockSetRowCount(1);
163     MockIsFailedToCreateDataShareHelper(false);
164     MockIsFailedGoToFirstRow(0);
165     MockGoToGetNextRow(-1);
166 
167     AdvancedDatashareHelper advancedDatashareHelper;
168     std::string uri = "datashare:///com.ohos.contactsdataability/contacts/contact_data?Proxy=true";
169     Uri contactUri(uri);
170     std::string phoneNumber = "1111";
171 
172     bool ret = advancedDatashareHelper.QueryContact(
173         contactUri, phoneNumber, "4", "1", "true");
174     EXPECT_EQ(ret, 1);
175 }
176 
177 HWTEST_F(AdvancedDatashareHelperTest, isRepeatCall_0001, Function | SmallTest | Level1)
178 {
179     MockGetSystemAbilityManager(false);
180     MockIsFailedToCreateDataShareHelper(true);
181     MockIsFailedToQueryDataShareResultSet(true);
182 
183     AdvancedDatashareHelper advancedDatashareHelper;
184     std::string phoneNumber = "11111111111";
185 
186     bool ret = advancedDatashareHelper.isRepeatCall(phoneNumber);
187     EXPECT_EQ(ret, 0);
188 
189     MockIsFailedToCreateDataShareHelper(false);
190     ret = advancedDatashareHelper.isRepeatCall(phoneNumber);
191     EXPECT_EQ(ret, 0);
192 
193     MockIsFailedToQueryDataShareResultSet(false);
194     MockSetRowCount(1);
195     MockIsFailedGoToFirstRow(0);
196     ret = advancedDatashareHelper.isRepeatCall(phoneNumber);
197     EXPECT_EQ(ret, 0);
198 }
199 }
200 }