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_METHOD1(MoveToNextTarget, void(uint32_t)); 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 SetRequestSessionId(uint32_t sessionId)73 void SetRequestSessionId(uint32_t sessionId) 74 { 75 requestSessionId_ = sessionId; 76 } 77 CallSetTaskExecStatus(int status)78 void CallSetTaskExecStatus(int status) 79 { 80 SyncTaskContext::SetTaskExecStatus(status); 81 } 82 SetLastFullSyncTaskStatus(SyncOperation::Status lastFullSyncTaskStatus)83 void SetLastFullSyncTaskStatus(SyncOperation::Status lastFullSyncTaskStatus) 84 { 85 lastFullSyncTaskStatus_ = static_cast<int>(lastFullSyncTaskStatus); 86 } 87 RegForkGetDeviceIdFunc(const std::function<void ()> & forkGetDeviceIdFunc)88 void RegForkGetDeviceIdFunc(const std::function<void ()> &forkGetDeviceIdFunc) 89 { 90 forkGetDeviceIdFunc_ = forkGetDeviceIdFunc; 91 } 92 GetDeviceId()93 std::string GetDeviceId() const override 94 { 95 if (forkGetDeviceIdFunc_) { 96 forkGetDeviceIdFunc_(); 97 } 98 return SingleVerKvSyncTaskContext::GetDeviceId(); 99 } 100 SetSyncOperation(SyncOperation * operation)101 void SetSyncOperation(SyncOperation *operation) 102 { 103 syncOperation_ = operation; 104 } 105 CallTimeout(TimerId id)106 int CallTimeout(TimerId id) 107 { 108 return SingleVerKvSyncTaskContext::TimeOut(id); 109 } 110 GetUseCount()111 int GetUseCount() 112 { 113 return usedCount_; 114 } 115 SetAutoSync(bool autoSync)116 void SetAutoSync(bool autoSync) 117 { 118 isAutoSync_ = autoSync; 119 } 120 private: 121 std::function<void ()> forkGetDeviceIdFunc_; 122 }; 123 } // namespace DistributedDB 124 #endif // #define MOCK_SYNC_TASK_CONTEXT_H 125