2 Copyright (c) 2018-2019 Nokia.
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
17 #include <arpa/inet.h>
18 #include <type_traits>
19 #include <gtest/gtest.h>
20 #include <gmock/gmock.h>
21 #include "private/redis/databaseinfo.hpp"
23 using namespace shareddatalayer;
24 using namespace shareddatalayer::redis;
25 using namespace testing;
29 static const std::string defaultAddress = "address";
30 static const uint16_t defaultPort = 3333;
32 DatabaseInfo getDatabaseInfo(DatabaseInfo::Type type = DatabaseInfo::Type::SINGLE,
33 std::string address = defaultAddress,
34 uint16_t port = defaultPort)
36 DatabaseInfo databaseInfo;
37 databaseInfo.type = type;
38 databaseInfo.hosts.push_back({address, htons(port)});
39 databaseInfo.ns = "namespace";
43 DatabaseInfo& addHost(DatabaseInfo& databaseInfo,
47 databaseInfo.hosts.push_back({address, htons(port)});
51 class DatabaseInfoTest: public testing::Test
58 virtual ~DatabaseInfoTest()
64 TEST_F(DatabaseInfoTest, EqualAndUnequalOperatorsIdenticalInfos)
67 DatabaseInfo databaseInfo1;
68 DatabaseInfo databaseInfo2;
70 databaseInfo1 = getDatabaseInfo();
71 databaseInfo2 = getDatabaseInfo();
73 EXPECT_TRUE(databaseInfo1 == databaseInfo2);
74 EXPECT_FALSE(databaseInfo1 != databaseInfo2);
77 TEST_F(DatabaseInfoTest, EqualOperatorDifferentAmountOfHosts)
80 DatabaseInfo databaseInfo1;
81 DatabaseInfo databaseInfo2;
83 databaseInfo1 = getDatabaseInfo();
84 databaseInfo2 = getDatabaseInfo();
85 databaseInfo2 = addHost(databaseInfo2,
89 EXPECT_FALSE(databaseInfo1 == databaseInfo2);
92 TEST_F(DatabaseInfoTest, EqualOperatorHostsInDifferentOrder)
95 DatabaseInfo databaseInfo1;
96 DatabaseInfo databaseInfo2;
98 databaseInfo1 = getDatabaseInfo(DatabaseInfo::Type::SINGLE,
101 databaseInfo1 = addHost(databaseInfo1,
104 databaseInfo2 = getDatabaseInfo();
105 databaseInfo2 = addHost(databaseInfo2,
109 EXPECT_TRUE(databaseInfo1 == databaseInfo2);
112 TEST_F(DatabaseInfoTest, EqualOperatorDiffrentAddressInHosts)
115 DatabaseInfo databaseInfo1;
116 DatabaseInfo databaseInfo2;
118 databaseInfo1 = getDatabaseInfo(DatabaseInfo::Type::SINGLE,
121 databaseInfo2 = getDatabaseInfo(DatabaseInfo::Type::SINGLE,
125 EXPECT_FALSE(databaseInfo1 == databaseInfo2);
128 TEST_F(DatabaseInfoTest, EqualOperatorDiffrentPortInHosts)
131 DatabaseInfo databaseInfo1;
132 DatabaseInfo databaseInfo2;
134 databaseInfo1 = getDatabaseInfo(DatabaseInfo::Type::SINGLE,
137 databaseInfo2 = getDatabaseInfo(DatabaseInfo::Type::SINGLE,
141 EXPECT_FALSE(databaseInfo1 == databaseInfo2);