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