1 /* 2 * Copyright (c) 2022 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 MOCK_SYNC_TASK_CONTEXT_H 17 #define MOCK_SYNC_TASK_CONTEXT_H 18 19 #include <gmock/gmock.h> 20 #include "single_ver_kv_sync_task_context.h" 21 22 namespace DistributedDB { 23 class MockSyncTaskContext : public SingleVerKvSyncTaskContext { 24 public: CallIsCurrentSyncTaskCanBeSkipped()25 bool CallIsCurrentSyncTaskCanBeSkipped() 26 { 27 return SingleVerKvSyncTaskContext::IsCurrentSyncTaskCanBeSkipped(); 28 } 29 CallSetSyncMode(int mode)30 void CallSetSyncMode(int mode) 31 { 32 SingleVerKvSyncTaskContext::SetMode(mode); 33 } 34 CallGenerateRequestSessionId()35 uint32_t CallGenerateRequestSessionId() 36 { 37 return GenerateRequestSessionId(); 38 } 39 SetLastRequestSessionId(uint32_t requestSessionId)40 void SetLastRequestSessionId(uint32_t requestSessionId) 41 { 42 lastRequestSessionId_ = requestSessionId; 43 } 44 GetLastRequestSessionId()45 uint32_t GetLastRequestSessionId() 46 { 47 return lastRequestSessionId_; 48 } 49 50 MOCK_CONST_METHOD0(GetTimerId, TimerId(void)); 51 52 MOCK_METHOD0(MoveToNextTarget, void(void)); 53 54 MOCK_CONST_METHOD0(IsTargetQueueEmpty, bool(void)); 55 56 MOCK_CONST_METHOD0(IsCurrentSyncTaskCanBeSkipped, bool(void)); 57 58 MOCK_METHOD1(SetOperationStatus, void(int)); 59 60 MOCK_METHOD1(SetTaskExecStatus, void(int)); 61 62 MOCK_METHOD0(Clear, void(void)); 63 64 MOCK_CONST_METHOD0(GetRequestSessionId, uint32_t(void)); 65 66 MOCK_CONST_METHOD1(GetSchemaSyncStatus, std::pair<bool, bool>(QuerySyncObject &)); 67 CallCommErrHandlerFuncInner(int errCode,uint32_t sessionId)68 void CallCommErrHandlerFuncInner(int errCode, uint32_t sessionId) 69 { 70 SyncTaskContext::CommErrHandlerFuncInner(errCode, sessionId); 71 } 72 CallSetTaskExecStatus(int status)73 void CallSetTaskExecStatus(int status) 74 { 75 SyncTaskContext::SetTaskExecStatus(status); 76 } 77 SetLastFullSyncTaskStatus(SyncOperation::Status lastFullSyncTaskStatus)78 void SetLastFullSyncTaskStatus(SyncOperation::Status lastFullSyncTaskStatus) 79 { 80 lastFullSyncTaskStatus_ = static_cast<int>(lastFullSyncTaskStatus); 81 } 82 RegForkGetDeviceIdFunc(const std::function<void ()> & forkGetDeviceIdFunc)83 void RegForkGetDeviceIdFunc(const std::function<void ()> &forkGetDeviceIdFunc) 84 { 85 forkGetDeviceIdFunc_ = forkGetDeviceIdFunc; 86 } 87 GetDeviceId()88 std::string GetDeviceId() const override 89 { 90 if (forkGetDeviceIdFunc_) { 91 forkGetDeviceIdFunc_(); 92 } 93 return SingleVerKvSyncTaskContext::GetDeviceId(); 94 } 95 SetSyncOperation(SyncOperation * operation)96 void SetSyncOperation(SyncOperation *operation) 97 { 98 syncOperation_ = operation; 99 } 100 CallTimeout(TimerId id)101 int CallTimeout(TimerId id) 102 { 103 return SingleVerKvSyncTaskContext::TimeOut(id); 104 } 105 GetUseCount()106 int GetUseCount() 107 { 108 return usedCount_; 109 } 110 SetAutoSync(bool autoSync)111 void SetAutoSync(bool autoSync) 112 { 113 isAutoSync_ = autoSync; 114 } 115 private: 116 std::function<void ()> forkGetDeviceIdFunc_; 117 }; 118 } // namespace DistributedDB 119 #endif // #define MOCK_SYNC_TASK_CONTEXT_H