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