• 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 #ifndef DATA_HELPER_MOCK_H
16 #define DATA_HELPER_MOCK_H
17 #include <gmock/gmock.h>
18 #include <memory>
19 #include <vector>
20 
21 #include "datashare_helper.h"
22 #include "settings_data_manager.h"
23 
24 namespace OHOS::FileManagement::CloudFile {
25 using namespace OHOS::DataShare;
26 using namespace OHOS::FileManagement::CloudSync;
27 
28 class DataShareHelperMock : public DataShareHelper {
29 public:
30     MOCK_METHOD5(Creator,
31                  std::shared_ptr<DataShareHelper>(const std::string &strUri,
32                                                   const CreateOptions &options,
33                                                   const std::string &bundleName,
34                                                   const int waitTime,
35                                                   bool isSystem));
36     MOCK_METHOD0(Release, bool());
37     MOCK_METHOD2(GetFileTypes, std::vector<std::string>(Uri &uri, const std::string &mimeTypeFilter));
38     MOCK_METHOD2(OpenFile, int(Uri &uri, const std::string &mode));
39     MOCK_METHOD3(OpenFileWithErrCode, int(Uri &uri, const std::string &mode, int32_t &errCode));
40     MOCK_METHOD2(OpenRawFile, int(Uri &uri, const std::string &mode));
41     MOCK_METHOD2(Insert, int(Uri &uri, const DataShareValuesBucket &value));
42     MOCK_METHOD3(InsertExt, int(Uri &uri, const DataShareValuesBucket &value, std::string &result));
43     MOCK_METHOD3(Update, int(Uri &uri, const DataSharePredicates &predicates, const DataShareValuesBucket &value));
44     MOCK_METHOD2(BatchUpdate, int(const UpdateOperations &operations, std::vector<BatchUpdateResult> &results));
45     MOCK_METHOD2(Delete, int(Uri &uri, const DataSharePredicates &predicates));
46     MOCK_METHOD4(Query,
47                  std::shared_ptr<DataShareResultSet>(Uri &uri,
48                                                      const DataSharePredicates &predicates,
49                                                      std::vector<std::string> &columns,
50                                                      DatashareBusinessError *businessError));
51     MOCK_METHOD1(GetType, std::string(Uri &uri));
52     MOCK_METHOD2(BatchInsert, int(Uri &uri, const std::vector<DataShareValuesBucket> &values));
53     MOCK_METHOD2(ExecuteBatch, int(const std::vector<OperationStatement> &statements, ExecResultSet &result));
54     MOCK_METHOD2(RegisterObserver, int(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver));
55     MOCK_METHOD2(UnregisterObserver, int(const Uri &uri, const sptr<AAFwk::IDataAbilityObserver> &dataObserver));
56     MOCK_METHOD1(NotifyChange, void(const Uri &uri));
57     MOCK_METHOD3(RegisterObserverExtProvider,
58                  int(const Uri &uri, std::shared_ptr<DataShareObserver> dataObserver, bool isDescendants));
59     MOCK_METHOD2(UnregisterObserverExtProvider, int(const Uri &uri, std::shared_ptr<DataShareObserver> dataObserver));
60     MOCK_METHOD1(NotifyChangeExtProvider, void(const DataShareObserver::ChangeInfo &changeInfo));
61     MOCK_METHOD1(NormalizeUri, Uri(Uri &uri));
62     MOCK_METHOD1(DenormalizeUri, Uri(Uri &uri));
63     MOCK_METHOD3(AddQueryTemplate, int(const std::string &uri, int64_t subscriberId, Template &tpl));
64     MOCK_METHOD2(DelQueryTemplate, int(const std::string &uri, int64_t subscriberId));
65     MOCK_METHOD2(Publish, std::vector<OperationResult>(const Data &data, const std::string &bundleName));
66     MOCK_METHOD2(GetPublishedData, Data(const std::string &bundleName, int &resultCode));
67     MOCK_METHOD3(SubscribeRdbData,
68                  std::vector<OperationResult>(const std::vector<std::string> &uris,
69                                               const TemplateId &templateId,
70                                               const std::function<void(const RdbChangeNode &changeNode)> &callback));
71     MOCK_METHOD2(UnsubscribeRdbData,
72                  std::vector<OperationResult>(const std::vector<std::string> &uris, const TemplateId &templateId));
73     MOCK_METHOD2(EnableRdbSubs,
74                  std::vector<OperationResult>(const std::vector<std::string> &uris, const TemplateId &templateId));
75     MOCK_METHOD2(DisableRdbSubs,
76                  std::vector<OperationResult>(const std::vector<std::string> &uris, const TemplateId &templateId));
77     MOCK_METHOD3(
78         SubscribePublishedData,
79         std::vector<OperationResult>(const std::vector<std::string> &uris,
80                                      int64_t subscriberId,
81                                      const std::function<void(const PublishedDataChangeNode &changeNode)> &callback));
82     MOCK_METHOD2(UnsubscribePublishedData,
83                  std::vector<OperationResult>(const std::vector<std::string> &uris, int64_t subscriberId));
84     MOCK_METHOD2(EnablePubSubs,
85                  std::vector<OperationResult>(const std::vector<std::string> &uris, int64_t subscriberId));
86     MOCK_METHOD2(DisablePubSubs,
87                  std::vector<OperationResult>(const std::vector<std::string> &uris, int64_t subscriberId));
88     MOCK_METHOD2(InsertEx, std::pair<int32_t, int32_t>(Uri &uri, const DataShareValuesBucket &value));
89     MOCK_METHOD3(UpdateEx,
90                  std::pair<int32_t, int32_t>(Uri &uri,
91                                              const DataSharePredicates &predicates,
92                                              const DataShareValuesBucket &value));
93     MOCK_METHOD2(DeleteEx, std::pair<int32_t, int32_t>(Uri &uri, const DataSharePredicates &predicates));
94     MOCK_METHOD3(UserDefineFunc, int32_t(MessageParcel &data, MessageParcel &reply, MessageOption &option));
95 };
96 
97 class IDataHelper {
98 public:
99     virtual ~IDataHelper() = default;
100     virtual std::pair<int, std::shared_ptr<DataShareHelper>> Create() = 0;
101     virtual SwitchStatus GetSwitchStatus() = 0;
102     virtual int32_t QuerySwitchStatus() = 0;
103 
104 public:
105     static inline std::shared_ptr<IDataHelper> ins = nullptr;
106 };
107 
108 class DataHelperMock : public IDataHelper {
109 public:
110     MOCK_METHOD0(Create, std::pair<int, std::shared_ptr<DataShareHelper>>());
111     MOCK_METHOD0(GetSwitchStatus, SwitchStatus());
112     MOCK_METHOD0(QuerySwitchStatus, int32_t());
113 };
114 } // namespace OHOS::FileManagement::CloudFile
115 #endif