• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-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 "datashare_helper.h"
17 #include "mock_datashare.h"
18 
19 namespace OHOS {
20 namespace Notification {
21 namespace {
22 std::string g_getStringValue = "";
23 int g_goToFirstRow = DataShare::E_OK;
24 bool g_isFailedToCreateDataShareHelper = false;
25 bool g_isFailedToQueryDataShareResultSet = false;
26 int g_rowCount = 1;
27 int g_goToNextRow = DataShare::E_OK;
28 }
29 
MockIsFailedGoToFirstRow(const int goToFirstRow)30 void MockIsFailedGoToFirstRow(const int goToFirstRow)
31 {
32     g_goToFirstRow = goToFirstRow;
33 }
34 
MockGetStringValue(const std::string & getStringValue)35 void MockGetStringValue(const std::string& getStringValue)
36 {
37     g_getStringValue = getStringValue;
38 }
39 
MockIsFailedToCreateDataShareHelper(const bool isFailed)40 void MockIsFailedToCreateDataShareHelper(const bool isFailed)
41 {
42     g_isFailedToCreateDataShareHelper = isFailed;
43 }
44 
MockIsFailedToQueryDataShareResultSet(const bool isFailed)45 void MockIsFailedToQueryDataShareResultSet(const bool isFailed)
46 {
47     g_isFailedToQueryDataShareResultSet = isFailed;
48 }
49 
MockSetRowCount(const int rowCount)50 void MockSetRowCount(const int rowCount)
51 {
52     g_rowCount = rowCount;
53 }
54 
MockGoToGetNextRow(const int goToNextRow)55 void MockGoToGetNextRow(const int goToNextRow)
56 {
57     g_goToNextRow = goToNextRow;
58 }
59 
60 } // namespace Notification
61 
62 namespace DataShare {
63 class MockDataShareResultSet : public DataShareResultSet {
64 public:
GoToFirstRow()65     int GoToFirstRow() override
66     {
67         return Notification::g_goToFirstRow;
68     }
69 
GetRowCount(int32_t & count)70     int32_t GetRowCount(int32_t &count) override
71     {
72         count = Notification::g_rowCount;
73         return 0;
74     }
75 
GetColumnIndex(const std::string & columnName,int & columnIndex)76     int GetColumnIndex(const std::string &columnName, int &columnIndex) override
77     {
78         return 0;
79     }
80 
GetString(int columnIndex,std::string & value)81     int GetString(int columnIndex, std::string &value) override
82     {
83         value = Notification::g_getStringValue;
84         return 0;
85     }
86 
Close()87     int Close() override
88     {
89         return 0;
90     }
91 
GetColumnCount(int & count)92     int GetColumnCount(int &count) override
93     {
94         return 0;
95     }
96 
GetColumnName(int columnIndex,std::string & columnName)97     int GetColumnName(int columnIndex, std::string &columnName) override
98     {
99         return 0;
100     }
101 
GetRowIndex(int & position) const102     int GetRowIndex(int &position) const override
103     {
104         return 0;
105     }
106 
GoTo(int offset)107     int GoTo(int offset) override
108     {
109         return 0;
110     }
111 
GoToLastRow()112     int GoToLastRow() override
113     {
114         return 0;
115     }
116 
GoToNextRow()117     int GoToNextRow() override
118     {
119         return Notification::g_goToNextRow;
120     }
121 
GoToPreviousRow()122     int GoToPreviousRow() override
123     {
124         return 0;
125     }
126 
IsEnded(bool & result)127     int IsEnded(bool &result) override
128     {
129         return 0;
130     }
131 
IsStarted(bool & result) const132     int IsStarted(bool &result) const override
133     {
134         return 0;
135     }
136 
IsAtFirstRow(bool & result) const137     int IsAtFirstRow(bool &result) const override
138     {
139         return 0;
140     }
141 
IsAtLastRow(bool & result)142     int IsAtLastRow(bool &result) override
143     {
144         return 0;
145     }
146 
IsClosed() const147     bool IsClosed() const override
148     {
149         return false;
150     }
151 };
152 
153 class MockDataShareHelper : public DataShareHelper {
154 public:
Release()155     bool Release() override
156     {
157         return true;
158     }
159 
GetFileTypes(Uri & uri,const std::string & mimeTypeFilter)160     std::vector<std::string> GetFileTypes(Uri &uri, const std::string &mimeTypeFilter) override
161     {
162         return {};
163     }
164 
OpenFile(Uri & uri,const std::string & mode)165     int OpenFile(Uri &uri, const std::string &mode) override
166     {
167         return 0;
168     }
169 
OpenFileWithErrCode(Uri & uri,const std::string & mode,int32_t & errCode)170     int OpenFileWithErrCode(Uri &uri, const std::string &mode, int32_t &errCode) override
171     {
172         return 0;
173     }
174 
OpenRawFile(Uri & uri,const std::string & mode)175     int OpenRawFile(Uri &uri, const std::string &mode) override
176     {
177         return 0;
178     }
179 
180     [[deprecated("Use InsertEx(Uri &, const DataShareValuesBucket &) instead.")]]
Insert(Uri & uri,const DataShareValuesBucket & value)181     int Insert(Uri &uri, const DataShareValuesBucket &value) override
182     {
183         return 0;
184     }
185 
InsertExt(Uri & uri,const DataShareValuesBucket & value,std::string & result)186     int InsertExt(Uri &uri, const DataShareValuesBucket &value, std::string &result) override
187     {
188         return 0;
189     }
190 
191     [[deprecated("Use UpdateEx(Uri &, const DataSharePredicates &, const DataShareValuesBucket &) instead.")]]
Update(Uri & uri,const DataSharePredicates & predicates,const DataShareValuesBucket & value)192     int Update(Uri &uri, const DataSharePredicates &predicates, const DataShareValuesBucket &value) override
193     {
194         return 0;
195     }
196 
BatchUpdate(const UpdateOperations & operations,std::vector<BatchUpdateResult> & results)197     int BatchUpdate(const UpdateOperations &operations, std::vector<BatchUpdateResult> &results) override
198     {
199         return 0;
200     }
201 
202     [[deprecated("Use DeleteEx(Uri &, const DataSharePredicates &) instead.")]]
Delete(Uri & uri,const DataSharePredicates & predicates)203     int Delete(Uri &uri, const DataSharePredicates &predicates) override
204     {
205         return 0;
206     }
207 
Query(Uri & uri,const DataSharePredicates & predicates,std::vector<std::string> & columns,DatashareBusinessError * businessError=nullptr)208     std::shared_ptr<DataShareResultSet> Query(Uri &uri, const DataSharePredicates &predicates,
209         std::vector<std::string> &columns, DatashareBusinessError *businessError = nullptr) override
210     {
211         return Notification::g_isFailedToQueryDataShareResultSet ? nullptr : std::make_shared<MockDataShareResultSet>();
212     }
213 
GetType(Uri & uri)214     std::string GetType(Uri &uri) override
215     {
216         return "";
217     }
218 
BatchInsert(Uri & uri,const std::vector<DataShareValuesBucket> & values)219     int BatchInsert(Uri &uri, const std::vector<DataShareValuesBucket> &values) override
220     {
221         return 0;
222     }
223 
ExecuteBatch(const std::vector<OperationStatement> & statements,ExecResultSet & result)224     int ExecuteBatch(const std::vector<OperationStatement> &statements, ExecResultSet &result) override
225     {
226         return 0;
227     }
228 
RegisterObserver(const Uri & uri,const sptr<AAFwk::IDataAbilityObserver> & dataObserver)229     int RegisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver) override
230     {
231         return 0;
232     }
233 
UnregisterObserver(const Uri & uri,const sptr<AAFwk::IDataAbilityObserver> & dataObserver)234     int UnregisterObserver(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver) override
235     {
236         return 0;
237     }
238 
NotifyChange(const Uri & uri)239     void NotifyChange(const Uri &uri) override {}
240 
RegisterObserverExtProvider(const Uri & uri,const std::shared_ptr<DataShareObserver> dataObserver,bool isDescendants)241     int RegisterObserverExtProvider(const Uri &uri, const std::shared_ptr<DataShareObserver> dataObserver,
242         bool isDescendants) override
243     {
244         return 0;
245     }
246 
UnregisterObserverExtProvider(const Uri & uri,const std::shared_ptr<DataShareObserver> dataObserver)247     int UnregisterObserverExtProvider(const Uri &uri, const std::shared_ptr<DataShareObserver> dataObserver) override
248     {
249         return 0;
250     }
251 
NotifyChangeExtProvider(const DataShareObserver::ChangeInfo & changeInfo)252     void NotifyChangeExtProvider(const DataShareObserver::ChangeInfo &changeInfo) override {}
253 
NormalizeUri(Uri & uri)254     Uri NormalizeUri(Uri &uri) override
255     {
256         return uri;
257     }
258 
DenormalizeUri(Uri & uri)259     Uri DenormalizeUri(Uri &uri) override
260     {
261         return uri;
262     }
263 
AddQueryTemplate(const std::string & uri,int64_t subscriberId,Template & tpl)264     int AddQueryTemplate(const std::string &uri, int64_t subscriberId, Template &tpl) override
265     {
266         return 0;
267     }
268 
DelQueryTemplate(const std::string & uri,int64_t subscriberId)269     int DelQueryTemplate(const std::string &uri, int64_t subscriberId) override
270     {
271         return 0;
272     }
273 
Publish(const Data & data,const std::string & bundleName)274     std::vector<OperationResult> Publish(const Data &data, const std::string &bundleName) override
275     {
276         return {};
277     }
278 
GetPublishedData(const std::string & bundleName,int & resultCode)279     Data GetPublishedData(const std::string &bundleName, int &resultCode) override
280     {
281         return {};
282     }
283 
SubscribeRdbData(const std::vector<std::string> & uris,const TemplateId & templateId,const std::function<void (const RdbChangeNode & changeNode)> & callback)284     std::vector<OperationResult> SubscribeRdbData(const std::vector<std::string> &uris,
285         const TemplateId &templateId, const std::function<void(const RdbChangeNode &changeNode)> &callback) override
286     {
287         return {};
288     }
289 
UnsubscribeRdbData(const std::vector<std::string> & uris,const TemplateId & templateId)290     std::vector<OperationResult> UnsubscribeRdbData(const std::vector<std::string> &uris,
291         const TemplateId &templateId) override
292     {
293         return {};
294     }
295 
EnableRdbSubs(const std::vector<std::string> & uris,const TemplateId & templateId)296     std::vector<OperationResult> EnableRdbSubs(const std::vector<std::string> &uris,
297         const TemplateId &templateId) override
298     {
299         return {};
300     }
301 
DisableRdbSubs(const std::vector<std::string> & uris,const TemplateId & templateId)302     std::vector<OperationResult> DisableRdbSubs(const std::vector<std::string> &uris,
303         const TemplateId &templateId) override
304     {
305         return {};
306     }
307 
SubscribePublishedData(const std::vector<std::string> & uris,int64_t subscriberId,const std::function<void (const PublishedDataChangeNode & changeNode)> & callback)308     std::vector<OperationResult> SubscribePublishedData(const std::vector<std::string> &uris,
309         int64_t subscriberId, const std::function<void(const PublishedDataChangeNode &changeNode)> &callback) override
310     {
311         return {};
312     }
313 
UnsubscribePublishedData(const std::vector<std::string> & uris,int64_t subscriberId)314     std::vector<OperationResult> UnsubscribePublishedData(const std::vector<std::string> &uris,
315         int64_t subscriberId) override
316     {
317         return {};
318     }
319 
EnablePubSubs(const std::vector<std::string> & uris,int64_t subscriberId)320     std::vector<OperationResult> EnablePubSubs(const std::vector<std::string> &uris, int64_t subscriberId) override
321     {
322         return {};
323     }
324 
DisablePubSubs(const std::vector<std::string> & uris,int64_t subscriberId)325     std::vector<OperationResult> DisablePubSubs(const std::vector<std::string> &uris, int64_t subscriberId) override
326     {
327         return {};
328     }
329 };
330 
Creator(const sptr<IRemoteObject> & token,const std::string & strUri,const std::string & extUri,const int waitTime,bool isSystem)331 std::shared_ptr<DataShareHelper> DataShareHelper::Creator(const sptr<IRemoteObject> &token, const std::string &strUri,
332     const std::string &extUri, const int waitTime, bool isSystem)
333 {
334     return Notification::g_isFailedToCreateDataShareHelper ? nullptr : std::make_shared<MockDataShareHelper>();
335 }
336 
Create(const sptr<IRemoteObject> & token,const std::string & strUri,const std::string & extUri,const int waitTime)337 std::pair<int, std::shared_ptr<DataShareHelper>> DataShareHelper::Create(const sptr<IRemoteObject> &token,
338     const std::string &strUri, const std::string &extUri, const int waitTime)
339 {
340     if (Notification::g_isFailedToCreateDataShareHelper) {
341         return std::make_pair(1, nullptr);
342     } else {
343         return std::make_pair(0, std::make_shared<MockDataShareHelper>());
344     }
345 }
346 } // namespace DataShare
347 } // namespace OHOS