/** * Copyright (c) 2021 OceanBase * OceanBase CE is licensed under Mulan PubL v2. * You can use this software according to the terms and conditions of the Mulan PubL v2. * You may obtain a copy of Mulan PubL v2 at: * http://license.coscl.org.cn/MulanPubL-2.0 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. * See the Mulan PubL v2 for more details. */ #ifndef OCEANBASE_ROOTSERVER_MOCK_LEADER_COORDINATE_H_ #define OCEANBASE_ROOTSERVER_MOCK_LEADER_COORDINATE_H_ #include #include "rootserver/ob_leader_coordinator.h" #include "rpc/mock_ob_srv_rpc_proxy.h" namespace oceanbase { namespace rootserver { class MockLeaderCoordinator : public ObLeaderCoordinator { public: MOCK_METHOD0(coordinate, int()); MOCK_METHOD0(smooth_coordinate, int()); MOCK_METHOD0(start_smooth_coordinate, int()); MOCK_METHOD1(is_doing_smooth_coordinate, int(bool &)); MOCK_METHOD1(is_last_switch_turn_succ, int(bool &)); MOCK_METHOD0(signal, void()); MOCK_METHOD1(get_leader_stat, int(ObILeaderCoordinator::ServerLeaderStat &leader_stat)); MOCK_METHOD4(coordinate_partition_group, int(const uint64_t, const int64_t, const common::ObIArray &, const common::ObArray &)); virtual int check_small_tenant(const uint64_t, bool &small_tenant) { small_tenant = true; return common::OB_SUCCESS; } virtual common::ObLatch &get_lock() { return switch_leader_lock_; } virtual common::ObLatch &get_switch_leader_lock() { return switch_leader_lock_; } virtual obrpc::ObSrvRpcProxy &get_rpc_proxy() { return rpc_proxy_; } common::ObLatch switch_leader_lock_; common::ObLatch lock_; obrpc::MockObSrvRpcProxy rpc_proxy_; }; } // end namespace rootserver } // end namespace oceanbase #endif // OCEANBASE_ROOTSERVER_MOCK_LEADER_COORDINATE_H_