1 /*
2  * Copyright (c) 2021-2023 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 APP_DOMAIN_VERIFY_MOCK_RDB_H
16 #define APP_DOMAIN_VERIFY_MOCK_RDB_H
17 #include "gmock/gmock.h"
18 #include "rdb_store.h"
19 namespace OHOS::AppDomainVerify {
20 void MockGetRdbStore(std::shared_ptr<OHOS::NativeRdb::RdbStore> mockRdbStore);
21 }
22 
23 namespace OHOS::NativeRdb {
24 class MockResultSet : public AbsSharedResultSet {
25 public:
26     MOCK_METHOD(int, GoToFirstRow, (), (override));
27     MOCK_METHOD(int, GoToNextRow, (), (override));
28     MOCK_METHOD(int, GetString, (int columnIndex, std::string& value), (override));
29     MOCK_METHOD(int, GetInt, (int columnIndex, int& value), (override));
30     MOCK_METHOD(int, Close, (), (override));
31 };
32 class MockRdbStore : public RdbStore {
33 public:
34     MockRdbStore() = default;
35     MOCK_METHOD(int, ExecuteSql, (const std::string& sql, const std::vector<ValueObject>& bindArgs), (override));
36     MOCK_METHOD(int, InsertWithConflictResolution,
37         (int64_t & outRowId, const std::string& table, const ValuesBucket& values,
38             ConflictResolution conflictResolution),
39         (override));
40     MOCK_METHOD(int, Delete, (int& deletedRows, const AbsRdbPredicates& predicates), (override));
41     MOCK_METHOD(int, Delete,
42         (int& deletedRows, const std::string& table, const std::string& whereClause,
43             const std::vector<std::string>& whereArgs),
44         (override));
45 
46     MOCK_METHOD(int, Delete,
47         (int& deletedRows, const std::string& table, const std::string& whereClause,
48             const std::vector<ValueObject>& bindArgs),
49         (override));
50 
51     MOCK_METHOD(std::shared_ptr<AbsSharedResultSet>, Query,
52         (const AbsRdbPredicates& predicates, const std::vector<std::string>& columns), (override));
53 
54     ~MockRdbStore() override = default;
55 
Insert(int64_t & outRowId,const std::string & table,const ValuesBucket & initialValues)56     int Insert(int64_t& outRowId, const std::string& table, const ValuesBucket& initialValues) override
57     {
58         return NativeRdb::E_ERROR;
59     };
BatchInsert(int64_t & outInsertNum,const std::string & table,const std::vector<ValuesBucket> & initialBatchValues)60     int BatchInsert(
61         int64_t& outInsertNum, const std::string& table, const std::vector<ValuesBucket>& initialBatchValues) override
62     {
63         return NativeRdb::E_ERROR;
64     };
Replace(int64_t & outRowId,const std::string & table,const ValuesBucket & initialValues)65     int Replace(int64_t& outRowId, const std::string& table, const ValuesBucket& initialValues) override
66     {
67         return NativeRdb::E_ERROR;
68     };
69 
Update(int & changedRows,const std::string & table,const ValuesBucket & values,const std::string & whereClaus,const std::vector<std::string> & whereArgs)70     int Update(int& changedRows, const std::string& table, const ValuesBucket& values, const std::string& whereClaus,
71         const std::vector<std::string>& whereArgs) override
72     {
73         return NativeRdb::E_ERROR;
74     };
Update(int & changedRows,const std::string & table,const ValuesBucket & values,const std::string & whereClause,const std::vector<ValueObject> & bindArgs)75     int Update(int& changedRows, const std::string& table, const ValuesBucket& values, const std::string& whereClause,
76         const std::vector<ValueObject>& bindArgs) override
77     {
78         return NativeRdb::E_ERROR;
79     };
UpdateWithConflictResolution(int & changedRows,const std::string & table,const ValuesBucket & values,const std::string & whereClause,const std::vector<std::string> & whereArgs,ConflictResolution conflictResolution)80     int UpdateWithConflictResolution(int& changedRows, const std::string& table, const ValuesBucket& values,
81         const std::string& whereClause, const std::vector<std::string>& whereArgs,
82         ConflictResolution conflictResolution) override
83     {
84         return NativeRdb::E_ERROR;
85     };
UpdateWithConflictResolution(int & changedRows,const std::string & table,const ValuesBucket & values,const std::string & whereClause,const std::vector<ValueObject> & bindArgs,ConflictResolution conflictResolution)86     int UpdateWithConflictResolution(int& changedRows, const std::string& table, const ValuesBucket& values,
87         const std::string& whereClause, const std::vector<ValueObject>& bindArgs,
88         ConflictResolution conflictResolution) override
89     {
90         return NativeRdb::E_ERROR;
91     };
92 
Query(int & errCode,bool distinct,const std::string & table,const std::vector<std::string> & columns,const std::string & whereClause,const std::vector<ValueObject> & bindArgs,const std::string & groupBy,const std::string & indexName,const std::string & orderBy,const int & limit,const int & offset)93     std::shared_ptr<AbsSharedResultSet> Query(int& errCode, bool distinct, const std::string& table,
94         const std::vector<std::string>& columns, const std::string& whereClause,
95         const std::vector<ValueObject>& bindArgs, const std::string& groupBy, const std::string& indexName,
96         const std::string& orderBy, const int& limit, const int& offset) override
97     {
98         return nullptr;
99     };
QuerySql(const std::string & sql,const std::vector<std::string> & selectionArgs)100     std::shared_ptr<AbsSharedResultSet> QuerySql(
101         const std::string& sql, const std::vector<std::string>& selectionArgs) override
102     {
103         return nullptr;
104     };
QuerySql(const std::string & sql,const std::vector<ValueObject> & selectionArgs)105     std::shared_ptr<AbsSharedResultSet> QuerySql(
106         const std::string& sql, const std::vector<ValueObject>& selectionArgs) override
107     {
108         return nullptr;
109     };
QueryByStep(const std::string & sql,const std::vector<std::string> & selectionArgs)110     std::shared_ptr<ResultSet> QueryByStep(
111         const std::string& sql, const std::vector<std::string>& selectionArgs) override
112     {
113         return nullptr;
114     };
QueryByStep(const std::string & sql,const std::vector<ValueObject> & bindArgs,bool preCount)115     std::shared_ptr<ResultSet> QueryByStep(const std::string& sql, const std::vector<ValueObject>& bindArgs,
116         bool preCount) override
117     {
118         return nullptr;
119     };
120 
ExecuteAndGetLong(int64_t & outValue,const std::string & sql,const std::vector<ValueObject> & bindArgs)121     int ExecuteAndGetLong(int64_t& outValue, const std::string& sql, const std::vector<ValueObject>& bindArgs) override
122     {
123         return NativeRdb::E_ERROR;
124     };
ExecuteAndGetString(std::string & outValue,const std::string & sql,const std::vector<ValueObject> & bindArgs)125     int ExecuteAndGetString(
126         std::string& outValue, const std::string& sql, const std::vector<ValueObject>& bindArgs) override
127     {
128         return NativeRdb::E_ERROR;
129     };
ExecuteForLastInsertedRowId(int64_t & outValue,const std::string & sql,const std::vector<ValueObject> & bindArgs)130     int ExecuteForLastInsertedRowId(
131         int64_t& outValue, const std::string& sql, const std::vector<ValueObject>& bindArgs) override
132     {
133         return NativeRdb::E_ERROR;
134     };
ExecuteForChangedRowCount(int64_t & outValue,const std::string & sql,const std::vector<ValueObject> & bindArgs)135     int ExecuteForChangedRowCount(
136         int64_t& outValue, const std::string& sql, const std::vector<ValueObject>& bindArgs) override
137     {
138         return NativeRdb::E_ERROR;
139     };
Backup(const std::string & databasePath,const std::vector<uint8_t> & destEncryptKey)140     int Backup(const std::string& databasePath, const std::vector<uint8_t>& destEncryptKey) override
141     {
142         return NativeRdb::E_ERROR;
143     };
Attach(const std::string & alias,const std::string & pathName,const std::vector<uint8_t> destEncryptKey)144     int Attach(
145         const std::string& alias, const std::string& pathName, const std::vector<uint8_t> destEncryptKey) override
146     {
147         return NativeRdb::E_ERROR;
148     };
149 
Count(int64_t & outValue,const AbsRdbPredicates & predicates)150     int Count(int64_t& outValue, const AbsRdbPredicates& predicates) override
151     {
152         return NativeRdb::E_ERROR;
153     };
154 
QueryByStep(const AbsRdbPredicates & predicates,const std::vector<std::string> & columns,bool preCount)155     std::shared_ptr<ResultSet> QueryByStep(
156         const AbsRdbPredicates& predicates, const std::vector<std::string>& columns, bool preCount) override
157     {
158         return nullptr;
159     };
RemoteQuery(const std::string & device,const AbsRdbPredicates & predicates,const std::vector<std::string> & columns,int & errCode)160     std::shared_ptr<ResultSet> RemoteQuery(const std::string& device, const AbsRdbPredicates& predicates,
161         const std::vector<std::string>& columns, int& errCode) override
162     {
163         return nullptr;
164     };
Update(int & changedRows,const ValuesBucket & values,const AbsRdbPredicates & predicates)165     int Update(int& changedRows, const ValuesBucket& values, const AbsRdbPredicates& predicates) override
166     {
167         return NativeRdb::E_ERROR;
168     };
169 
GetStatus()170     virtual int GetStatus()
171     {
172         return NativeRdb::E_ERROR;
173     };
SetStatus(int status)174     virtual void SetStatus(int status){};
GetVersion(int & version)175     int GetVersion(int& version) override
176     {
177         return NativeRdb::E_ERROR;
178     };
SetVersion(int version)179     int SetVersion(int version) override
180     {
181         return NativeRdb::E_ERROR;
182     };
BeginTransaction()183     int BeginTransaction() override
184     {
185         return NativeRdb::E_ERROR;
186     };
RollBack()187     int RollBack() override
188     {
189         return NativeRdb::E_ERROR;
190     };
Commit()191     int Commit() override
192     {
193         return NativeRdb::E_ERROR;
194     };
IsInTransaction()195     bool IsInTransaction() override
196     {
197         return false;
198     };
GetPath()199     std::string GetPath() override
200     {
201         return "";
202     }
IsHoldingConnection()203     bool IsHoldingConnection() override
204     {
205         return false;
206     };
IsOpen()207     bool IsOpen() const override
208     {
209         return false;
210     };
IsReadOnly()211     bool IsReadOnly() const override
212     {
213         return false;
214     };
IsMemoryRdb()215     bool IsMemoryRdb() const override
216     {
217         return false;
218     };
Restore(const std::string & backupPath,const std::vector<uint8_t> & newKey)219     int Restore(const std::string& backupPath, const std::vector<uint8_t>& newKey) override
220     {
221         return NativeRdb::E_ERROR;
222     };
ChangeDbFileForRestore(const std::string newPath,const std::string backupPath,const std::vector<uint8_t> & newKey)223     virtual int ChangeDbFileForRestore(
224         const std::string newPath, const std::string backupPath, const std::vector<uint8_t>& newKey)
225     {
226         return NativeRdb::E_ERROR;
227     };
228 
SetDistributedTables(const std::vector<std::string> & tables,int type,const DistributedRdb::DistributedConfig & distributedConfig)229     int SetDistributedTables(const std::vector<std::string>& tables, int type,
230         const DistributedRdb::DistributedConfig& distributedConfig) override
231     {
232         return E_ERROR;
233     };
234 
ObtainDistributedTableName(const std::string & device,const std::string & table,int & errCode)235     std::string ObtainDistributedTableName(const std::string& device, const std::string& table, int& errCode) override
236     {
237         return "";
238     }
239 
Sync(const SyncOption & option,const AbsRdbPredicates & predicate,const AsyncBrief & async)240     int Sync(const SyncOption& option, const AbsRdbPredicates& predicate, const AsyncBrief& async) override
241     {
242         return E_ERROR;
243     };
244 
Sync(const SyncOption & option,const AbsRdbPredicates & predicate,const AsyncDetail & async)245     int Sync(const SyncOption& option, const AbsRdbPredicates& predicate, const AsyncDetail& async) override
246     {
247         return E_ERROR;
248     };
249 
Sync(const SyncOption & option,const std::vector<std::string> & tables,const AsyncDetail & async)250     int Sync(const SyncOption& option, const std::vector<std::string>& tables, const AsyncDetail& async) override
251     {
252         return E_ERROR;
253     };
254 
Subscribe(const SubscribeOption & option,RdbStoreObserver * observer)255     int Subscribe(const SubscribeOption& option, RdbStoreObserver* observer) override
256     {
257         return E_ERROR;
258     };
259 
UnSubscribe(const SubscribeOption & option,RdbStoreObserver * observer)260     int UnSubscribe(const SubscribeOption& option, RdbStoreObserver* observer) override
261     {
262         return E_ERROR;
263     };
264 
RegisterAutoSyncCallback(std::shared_ptr<DetailProgressObserver> syncObserver)265     int RegisterAutoSyncCallback(std::shared_ptr<DetailProgressObserver> syncObserver) override
266     {
267         return E_ERROR;
268     };
269 
UnregisterAutoSyncCallback(std::shared_ptr<DetailProgressObserver> syncObserver)270     int UnregisterAutoSyncCallback(std::shared_ptr<DetailProgressObserver> syncObserver) override
271     {
272         return E_ERROR;
273     };
274 
Notify(const std::string & event)275     int Notify(const std::string& event) override
276     {
277         return E_ERROR;
278     }
279 
DropDeviceData(const std::vector<std::string> & devices,const DropOption & option)280     virtual bool DropDeviceData(const std::vector<std::string>& devices, const DropOption& option)
281     {
282         return false;
283     };
284 
GetModifyTime(const std::string & table,const std::string & columnName,std::vector<PRIKey> & keys)285     ModifyTime GetModifyTime(
286         const std::string& table, const std::string& columnName, std::vector<PRIKey>& keys) override
287     {
288         return {};
289     };
290 
CleanDirtyData(const std::string & table,uint64_t cursor)291     int CleanDirtyData(const std::string& table, uint64_t cursor) override
292     {
293         return E_ERROR;
294     };
295 
GetRebuilt(RebuiltType & rebuilt)296     int GetRebuilt(RebuiltType& rebuilt) override
297     {
298         return E_OK;
299     }
300 };
301 
302 }
303 #endif  // APP_DOMAIN_VERIFY_MOCK_RDB_H
304