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 #ifndef OHOS_DM_DATASHARE_HELPER_MOCK_H 17 #define OHOS_DM_DATASHARE_HELPER_MOCK_H 18 19 #include <gmock/gmock.h> 20 #include "datashare_helper.h" 21 22 namespace OHOS { 23 namespace DistributedHardware { 24 using OHOS::AAFwk::IDataAbilityObserver; 25 using OHOS::DataShare::BatchUpdateResult; 26 using OHOS::DataShare::Data; 27 using OHOS::DataShare::DatashareBusinessError; 28 using OHOS::DataShare::DataShareHelper; 29 using OHOS::DataShare::DataSharePredicates; 30 using OHOS::DataShare::DataShareResultSet; 31 using OHOS::DataShare::DataShareValuesBucket; 32 using OHOS::DataShare::OperationStatement; 33 using OHOS::DataShare::ExecResultSet; 34 using OHOS::DataShare::OperationResult; 35 using OHOS::DataShare::PublishedDataChangeNode; 36 using OHOS::DataShare::RdbChangeNode; 37 using OHOS::DataShare::Template; 38 using OHOS::DataShare::TemplateId; 39 using OHOS::DataShare::UpdateOperations; 40 using namespace OHOS::DataShare; 41 42 class DataShareHelperMock : public DataShareHelper { 43 public: 44 static std::shared_ptr<DataShareHelperMock> GetOrCreateInstance(); 45 static void ReleaseInstance(); 46 47 MOCK_METHOD(bool, Release, ()); 48 MOCK_METHOD(std::vector<std::string>, GetFileTypes, (Uri &, const std::string &)); 49 MOCK_METHOD(int, OpenFile, (Uri &, const std::string &)); 50 MOCK_METHOD(int, OpenFileWithErrCode, (Uri &, const std::string &, int32_t &)); 51 MOCK_METHOD(int, OpenRawFile, (Uri &, const std::string &)); 52 MOCK_METHOD(int, Insert, (Uri &, const DataShareValuesBucket &)); 53 MOCK_METHOD(int, InsertExt, (Uri &, const DataShareValuesBucket &, std::string &)); 54 MOCK_METHOD(int, Update, (Uri &, const DataSharePredicates &, const DataShareValuesBucket &)); 55 MOCK_METHOD(int, BatchUpdate, (const UpdateOperations &, std::vector<BatchUpdateResult> &)); 56 MOCK_METHOD(int, Delete, (Uri &, const DataSharePredicates &)); 57 MOCK_METHOD(std::shared_ptr<DataShareResultSet>, Query, 58 (Uri &, const DataSharePredicates &, std::vector<std::string> &, DatashareBusinessError *)); 59 MOCK_METHOD(std::string, GetType, (Uri &)); 60 MOCK_METHOD(int, BatchInsert, (Uri &, const std::vector<DataShareValuesBucket> &)); 61 MOCK_METHOD(int, ExecuteBatch, (const std::vector<OperationStatement> &, ExecResultSet &)); 62 MOCK_METHOD(int, RegisterObserver, (const Uri &, const sptr<IDataAbilityObserver> &)); 63 MOCK_METHOD(int, UnregisterObserver, (const Uri &, const sptr<IDataAbilityObserver> &)); 64 MOCK_METHOD(void, NotifyChange, (const Uri &)); 65 MOCK_METHOD(int, RegisterObserverExtProvider, (const Uri &uri, 66 const std::shared_ptr<DataShareObserver> dataObserver, bool isDescendants), (override)); 67 MOCK_METHOD(int, UnregisterObserverExtProvider, (const Uri &uri, 68 const std::shared_ptr<DataShareObserver> dataObserver), (override)); 69 MOCK_METHOD(void, NotifyChangeExtProvider, (const DataShareObserver::ChangeInfo &changeInfo), (override)); 70 MOCK_METHOD(Uri, NormalizeUri, (Uri &)); 71 MOCK_METHOD(Uri, DenormalizeUri, (Uri &)); 72 MOCK_METHOD(int, AddQueryTemplate, (const std::string &, int64_t, Template &)); 73 MOCK_METHOD(int, DelQueryTemplate, (const std::string &, int64_t)); 74 MOCK_METHOD(std::vector<OperationResult>, Publish, (const Data &, const std::string &)); 75 MOCK_METHOD(Data, GetPublishedData, (const std::string &, int &)); 76 MOCK_METHOD(std::vector<OperationResult>, SubscribeRdbData, (const std::vector<std::string> &, 77 const TemplateId &, const std::function<void(const RdbChangeNode &)> &)); 78 MOCK_METHOD(std::vector<OperationResult>, UnsubscribeRdbData, (const std::vector<std::string> &, 79 const TemplateId &)); 80 MOCK_METHOD(std::vector<OperationResult>, EnableRdbSubs, (const std::vector<std::string> &, 81 const TemplateId &)); 82 MOCK_METHOD(std::vector<OperationResult>, DisableRdbSubs, (const std::vector<std::string> &, 83 const TemplateId &)); 84 MOCK_METHOD(std::vector<OperationResult>, SubscribePublishedData, (const std::vector<std::string> &, int64_t, 85 const std::function<void(const PublishedDataChangeNode &)> &)); 86 MOCK_METHOD(std::vector<OperationResult>, UnsubscribePublishedData, (const std::vector<std::string> &, int64_t)); 87 MOCK_METHOD(std::vector<OperationResult>, EnablePubSubs, (const std::vector<std::string> &, int64_t)); 88 MOCK_METHOD(std::vector<OperationResult>, DisablePubSubs, (const std::vector<std::string> &, int64_t)); 89 private: 90 DataShareHelperMock() = default; 91 ~DataShareHelperMock() override = default; 92 static std::shared_ptr<DataShareHelperMock> instance_; 93 }; 94 } // namespace DistributedHardware 95 } // namespace OHOS 96 #endif // OHOS_DM_DATASHARE_HELPER_MOCK_H 97