22#include <google/protobuf/util/message_differencer.h>
23#include <gtest/gtest.h>
28#include "gmock/gmock.h"
33using ::google::protobuf::util::MessageDifferencer;
34using ::resdb::testing::EqualsProto;
37 if (arg.size() != replicas.size()) {
40 for (
size_t i = 0; i < replicas.size(); ++i) {
41 if (!MessageDifferencer::Equals(replicas[i], arg[i])) {
55TEST(TcpSocket, ResDBConfig) {
58 std::vector<ReplicaInfo> replicas;
64 ResDBConfig config(replicas, self_info);
66 EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
67 EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
68 EXPECT_EQ(config.GetReplicaNum(), replicas.size());
69 EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
72TEST(TcpSocket, ResDBConfigWith5Replicas) {
75 std::vector<ReplicaInfo> replicas;
82 ResDBConfig config(replicas, self_info);
84 EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
85 EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
86 EXPECT_EQ(config.GetReplicaNum(), replicas.size());
87 EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
90TEST(TcpSocket, ResDBConfigWith6Replicas) {
93 std::vector<ReplicaInfo> replicas;
101 ResDBConfig config(replicas, self_info);
103 EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
104 EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
105 EXPECT_EQ(config.GetReplicaNum(), replicas.size());
106 EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
109TEST(TcpSocket, ResDBConfigWith2Replicas) {
112 std::vector<ReplicaInfo> replicas;
116 ResDBConfig config(replicas, self_info);
118 EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
119 EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
120 EXPECT_EQ(config.GetReplicaNum(), replicas.size());
121 EXPECT_EQ(config.GetMinDataReceiveNum(), 1);
MATCHER_P(EqualsProto, replica, "")
ReplicaInfo GenerateReplicaInfo(int id, const std::string &ip, int port)
TEST(NetworkUtilsTest, GetDNSName)