1 /* 2 * Copyright (C) 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 16 #ifndef OHOS_CLOUDDISK_RDBSTORE_MOCK_H 17 #define OHOS_CLOUDDISK_RDBSTORE_MOCK_H 18 19 #include "abs_rdb_predicates.h" 20 #include "rdb_helper.h" 21 #include "result_set.h" 22 #include "value_object.h" 23 #include "values_bucket.h" 24 25 #include <gmock/gmock.h> 26 #include <gtest/gtest.h> 27 28 namespace OHOS::FileManagement::CloudDisk::Test { 29 using namespace testing; 30 using namespace testing::ext; 31 using namespace std; 32 using namespace NativeRdb; 33 class RdbStoreMock final : public NativeRdb::RdbStore { 34 public: 35 MOCK_METHOD3(Insert, int(int64_t &outRowId, const std::string &table, const ValuesBucket &initialValues)); 36 MOCK_METHOD3(BatchInsert, 37 int(int64_t &outInsertNum, 38 const std::string &table, 39 const std::vector<ValuesBucket> &initialBatchValues)); 40 MOCK_METHOD3(Replace, int(int64_t &outRowId, const std::string &table, const ValuesBucket &initialValues)); 41 MOCK_METHOD4(InsertWithConflictResolution, 42 int(int64_t &outRowId, 43 const std::string &table, 44 const ValuesBucket &initialValues, 45 ConflictResolution conflictResolution)); 46 MOCK_METHOD5(Update, 47 int(int &changedRows, 48 const std::string &table, 49 const ValuesBucket &values, 50 const std::string &whereClause, 51 const std::vector<std::string> &whereArgs)); 52 MOCK_METHOD5(Update, 53 int(int &changedRows, 54 const std::string &table, 55 const ValuesBucket &values, 56 const std::string &whereClause, 57 const std::vector<ValueObject> &bindArgs)); 58 59 MOCK_METHOD6(UpdateWithConflictResolution, 60 int(int &changedRows, 61 const std::string &table, 62 const ValuesBucket &values, 63 const std::string &whereClause, 64 const std::vector<std::string> &whereArgs, 65 ConflictResolution conflictResolution)); 66 67 MOCK_METHOD6(UpdateWithConflictResolution, 68 int(int &changedRows, 69 const std::string &table, 70 const ValuesBucket &values, 71 const std::string &whereClause, 72 const std::vector<ValueObject> &bindArgs, 73 ConflictResolution conflictResolution)); 74 75 MOCK_METHOD4(Delete, 76 int(int &deletedRows, 77 const std::string &table, 78 const std::string &whereClause, 79 const std::vector<std::string> &whereArgs)); 80 81 MOCK_METHOD4(Delete, 82 int(int &deletedRows, 83 const std::string &table, 84 const std::string &whereClause, 85 const std::vector<ValueObject> &bindArgs)); 86 87 MOCK_METHOD2(ExecuteSql, int(const std::string &sql, const std::vector<ValueObject> &bindArgs)); 88 89 MOCK_METHOD3(ExecuteAndGetLong, 90 int(int64_t &outValue, const std::string &sql, const std::vector<ValueObject> &bindArgs)); 91 92 MOCK_METHOD3(ExecuteAndGetString, 93 int(std::string &outValue, const std::string &sql, const std::vector<ValueObject> &bindArgs)); 94 95 MOCK_METHOD3(ExecuteForLastInsertedRowId, 96 int(int64_t &outValue, const std::string &sql, const std::vector<ValueObject> &bindArgs)); 97 98 MOCK_METHOD3(ExecuteForChangedRowCount, 99 int(int64_t &outValue, const std::string &sql, const std::vector<ValueObject> &bindArgs)); 100 101 MOCK_METHOD2(Backup, int(const std::string &databasePath, const std::vector<uint8_t> &destEncryptKey)); 102 103 MOCK_METHOD3(Attach, 104 int(const std::string &alias, const std::string &pathName, const std::vector<uint8_t> destEncryptKey)); 105 106 MOCK_METHOD2(Count, int(int64_t &outValue, const AbsRdbPredicates &predicates)); 107 MOCK_METHOD2(Query, 108 std::shared_ptr<AbsSharedResultSet>(const AbsRdbPredicates &predicates, 109 const std::vector<std::string> &columns)); 110 111 MOCK_METHOD11(Query, 112 std::shared_ptr<AbsSharedResultSet>(int &errCode, 113 bool distinct, 114 const std::string &table, 115 const std::vector<std::string> &columns, 116 const std::string &whereClause, 117 const std::vector<ValueObject> &bindArgs, 118 const std::string &groupBy, 119 const std::string &indexName, 120 const std::string &orderBy, 121 const int &limit, 122 const int &offset)); 123 MOCK_METHOD2(QuerySql, 124 std::shared_ptr<AbsSharedResultSet>(const std::string &sql, 125 const std::vector<std::string> &selectionArgs)); 126 MOCK_METHOD2(QuerySql, 127 std::shared_ptr<AbsSharedResultSet>(const std::string &sql, 128 const std::vector<ValueObject> &bindArgs)); 129 MOCK_METHOD2(QueryByStep, 130 std::shared_ptr<ResultSet>(const std::string &sql, const std::vector<std::string> &selectionArgs)); 131 MOCK_METHOD3(QueryByStep, 132 std::shared_ptr<ResultSet>(const std::string &sql, const std::vector<ValueObject> &bindArgs, 133 bool preCount)); 134 135 MOCK_METHOD3(QueryByStep, 136 std::shared_ptr<ResultSet>(const AbsRdbPredicates &predicates, 137 const std::vector<std::string> &columns, bool preCount)); 138 139 MOCK_METHOD4(RemoteQuery, 140 std::shared_ptr<ResultSet>(const std::string &device, 141 const AbsRdbPredicates &predicates, 142 const std::vector<std::string> &columns, 143 int &errCode)); 144 145 MOCK_METHOD3(GetModifyTime, ModifyTime(const std::string &table, const std::string &columnName, 146 std::vector<PRIKey> &keys)); 147 148 MOCK_METHOD3(SetDistributedTables, int(const std::vector<std::string> &tables, int32_t type, 149 const DistributedRdb::DistributedConfig &distributedConfig)); 150 MOCK_METHOD3(ObtainDistributedTableName, 151 std::string(const std::string &device, const std::string &table, int &errCode)); 152 MOCK_METHOD3(Sync, int(const SyncOption &option, const AbsRdbPredicates &predicate, const AsyncBrief& async)); 153 MOCK_METHOD3(Sync, int(const SyncOption &option, const AbsRdbPredicates &predicate, const AsyncDetail& async)); 154 MOCK_METHOD3(Sync, int(const SyncOption &option, const std::vector<std::string>& tables, const AsyncDetail& async)); 155 MOCK_METHOD2(Subscribe, int(const SubscribeOption &option, RdbStoreObserver *observer)); 156 MOCK_METHOD2(UnSubscribe, int(const SubscribeOption &option, RdbStoreObserver *observer)); 157 MOCK_METHOD1(RegisterAutoSyncCallback, int(std::shared_ptr<DetailProgressObserver> syncObserver)); 158 MOCK_METHOD1(UnregisterAutoSyncCallback, int(std::shared_ptr<DetailProgressObserver> syncObserver)); 159 MOCK_METHOD2(CleanDirtyData, int(const std::string &table, uint64_t cursor)); 160 MOCK_METHOD1(Notify, int(const std::string &event)); 161 MOCK_METHOD2(DropDeviceData, bool(const std::vector<std::string> &devices, const DropOption &option)); 162 MOCK_METHOD3(Update, int(int &changedRows, const ValuesBucket &values, const AbsRdbPredicates &predicates)); 163 MOCK_METHOD2(Delete, int(int &deletedRows, const AbsRdbPredicates &predicates)); 164 MOCK_METHOD1(GetVersion, int(int &version)); 165 MOCK_METHOD1(SetVersion, int(int version)); 166 MOCK_METHOD0(BeginTransaction, int()); 167 MOCK_METHOD0(RollBack, int()); 168 MOCK_METHOD0(Commit, int()); 169 MOCK_METHOD0(IsInTransaction, bool()); 170 MOCK_METHOD0(GetPath, std::string()); 171 MOCK_METHOD0(IsHoldingConnection, bool()); 172 MOCK_CONST_METHOD0(IsOpen, bool()); 173 MOCK_CONST_METHOD0(IsReadOnly, bool()); 174 MOCK_CONST_METHOD0(IsMemoryRdb, bool()); 175 MOCK_METHOD2(Restore, int(const std::string &backupPath, const std::vector<uint8_t> &newKey)); 176 MOCK_METHOD1(GetRebuilt, int(RebuiltType &rebuilt)); 177 }; 178 } // namespace OHOS::FileManagement::CloudSync::Test 179 #endif