• 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 
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