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 41 class DataShareHelperMock : public DataShareHelper { 42 public: 43 static std::shared_ptr<DataShareHelperMock> GetOrCreateInstance(); 44 static void ReleaseInstance(); 45 46 MOCK_METHOD(bool, Release, ()); 47 MOCK_METHOD(std::vector<std::string>, GetFileTypes, (Uri &, const std::string &)); 48 MOCK_METHOD(int, OpenFile, (Uri &, const std::string &)); 49 MOCK_METHOD(int, OpenRawFile, (Uri &, const std::string &)); 50 MOCK_METHOD(int, Insert, (Uri &, const DataShareValuesBucket &)); 51 MOCK_METHOD(int, InsertExt, (Uri &, const DataShareValuesBucket &, std::string &)); 52 MOCK_METHOD(int, Update, (Uri &, const DataSharePredicates &, const DataShareValuesBucket &)); 53 MOCK_METHOD(int, BatchUpdate, (const UpdateOperations &, std::vector<BatchUpdateResult> &)); 54 MOCK_METHOD(int, Delete, (Uri &, const DataSharePredicates &)); 55 MOCK_METHOD(std::shared_ptr<DataShareResultSet>, Query, 56 (Uri &, const DataSharePredicates &, std::vector<std::string> &, DatashareBusinessError *)); 57 MOCK_METHOD(std::string, GetType, (Uri &)); 58 MOCK_METHOD(int, BatchInsert, (Uri &, const std::vector<DataShareValuesBucket> &)); 59 MOCK_METHOD(int, ExecuteBatch, (const std::vector<OperationStatement> &, ExecResultSet &)); 60 MOCK_METHOD(int, RegisterObserver, (const Uri &, const sptr<IDataAbilityObserver> &)); 61 MOCK_METHOD(int, UnregisterObserver, (const Uri &, const sptr<IDataAbilityObserver> &)); 62 MOCK_METHOD(void, NotifyChange, (const Uri &)); 63 MOCK_METHOD(Uri, NormalizeUri, (Uri &)); 64 MOCK_METHOD(Uri, DenormalizeUri, (Uri &)); 65 MOCK_METHOD(int, AddQueryTemplate, (const std::string &, int64_t, Template &)); 66 MOCK_METHOD(int, DelQueryTemplate, (const std::string &, int64_t)); 67 MOCK_METHOD(std::vector<OperationResult>, Publish, (const Data &, const std::string &)); 68 MOCK_METHOD(Data, GetPublishedData, (const std::string &, int &)); 69 MOCK_METHOD(std::vector<OperationResult>, SubscribeRdbData, (const std::vector<std::string> &, 70 const TemplateId &, const std::function<void(const RdbChangeNode &)> &)); 71 MOCK_METHOD(std::vector<OperationResult>, UnsubscribeRdbData, (const std::vector<std::string> &, 72 const TemplateId &)); 73 MOCK_METHOD(std::vector<OperationResult>, EnableRdbSubs, (const std::vector<std::string> &, 74 const TemplateId &)); 75 MOCK_METHOD(std::vector<OperationResult>, DisableRdbSubs, (const std::vector<std::string> &, 76 const TemplateId &)); 77 MOCK_METHOD(std::vector<OperationResult>, SubscribePublishedData, (const std::vector<std::string> &, int64_t, 78 const std::function<void(const PublishedDataChangeNode &)> &)); 79 MOCK_METHOD(std::vector<OperationResult>, UnsubscribePublishedData, (const std::vector<std::string> &, int64_t)); 80 MOCK_METHOD(std::vector<OperationResult>, EnablePubSubs, (const std::vector<std::string> &, int64_t)); 81 MOCK_METHOD(std::vector<OperationResult>, DisablePubSubs, (const std::vector<std::string> &, int64_t)); 82 private: 83 DataShareHelperMock() = default; 84 ~DataShareHelperMock() override = default; 85 static std::shared_ptr<DataShareHelperMock> instance_; 86 }; 87 } // namespace DistributedHardware 88 } // namespace OHOS 89 #endif // OHOS_DM_DATASHARE_HELPER_MOCK_H 90