X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=tst%2Fdatabaseconfigurationimpl_test.cpp;h=df6dd0be0264082d9d77c29aa4369c196a7665c9;hb=refs%2Fchanges%2F46%2F7946%2F2;hp=5a5356c91334daf47d3ecb05996bdf784c6280fe;hpb=ece67088ea6c4f67b9d0db74477a9d5c614d7763;p=ric-plt%2Fsdl.git diff --git a/tst/databaseconfigurationimpl_test.cpp b/tst/databaseconfigurationimpl_test.cpp index 5a5356c..df6dd0b 100644 --- a/tst/databaseconfigurationimpl_test.cpp +++ b/tst/databaseconfigurationimpl_test.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2018-2019 Nokia. + Copyright (c) 2018-2022 Nokia. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -83,11 +83,18 @@ TEST_F(DatabaseConfigurationImplTest, CanApplyRedisSentinelDbTypeStringAndReturn EXPECT_EQ(DatabaseConfiguration::DbType::REDIS_SENTINEL, retDbType); } -TEST_F(DatabaseConfigurationImplTest, CanApplySdlClusterDbTypeStringAndReturnType) +TEST_F(DatabaseConfigurationImplTest, CanApplySdlStandaloneClusterDbTypeStringAndReturnType) { - databaseConfigurationImpl->checkAndApplyDbType("sdl-cluster"); + databaseConfigurationImpl->checkAndApplyDbType("sdl-standalone-cluster"); const auto retDbType(databaseConfigurationImpl->getDbType()); - EXPECT_EQ(DatabaseConfiguration::DbType::SDL_CLUSTER, retDbType); + EXPECT_EQ(DatabaseConfiguration::DbType::SDL_STANDALONE_CLUSTER, retDbType); +} + +TEST_F(DatabaseConfigurationImplTest, CanApplySdlSentinelClusterDbTypeStringAndReturnType) +{ + databaseConfigurationImpl->checkAndApplyDbType("sdl-sentinel-cluster"); + const auto retDbType(databaseConfigurationImpl->getDbType()); + EXPECT_EQ(DatabaseConfiguration::DbType::SDL_SENTINEL_CLUSTER, retDbType); } TEST_F(DatabaseConfigurationImplTest, CanApplyNewAddressesOneByOneAndReturnAllAddresses) @@ -102,6 +109,22 @@ TEST_F(DatabaseConfigurationImplTest, CanApplyNewAddressesOneByOneAndReturnAllAd EXPECT_EQ(65535U, ntohs(retAddresses.at(1).getPort())); } +TEST_F(DatabaseConfigurationImplTest, CanGetAddressesOneByOneWithAddressIndex) +{ + databaseConfigurationImpl->checkAndApplyServerAddress("server0.local"); + databaseConfigurationImpl->checkAndApplyServerAddress("10.20.30.40:65535"); + const auto addresses(databaseConfigurationImpl->getServerAddresses(boost::none)); + const auto addresses0(databaseConfigurationImpl->getServerAddresses(0)); + const auto addresses1(databaseConfigurationImpl->getServerAddresses(1)); + EXPECT_EQ(2U, addresses.size()); + EXPECT_EQ(1U, addresses0.size()); + EXPECT_EQ(1U, addresses1.size()); + EXPECT_EQ("server0.local", addresses0.at(0).getHost()); + EXPECT_EQ(6379U, ntohs(addresses0.at(0).getPort())); + EXPECT_EQ("10.20.30.40", addresses1.at(0).getHost()); + EXPECT_EQ(65535U, ntohs(addresses1.at(0).getPort())); +} + TEST_F(DatabaseConfigurationImplTest, CanThrowIfIllegalDbTypeIsApplied) { EXPECT_THROW(databaseConfigurationImpl->checkAndApplyDbType("bad_db_type"), DatabaseConfiguration::InvalidDbType); @@ -130,31 +153,66 @@ TEST_F(DatabaseConfigurationImplTest, DefaultSentinelAddressIsNone) TEST_F(DatabaseConfigurationImplTest, CanApplyAndReturnSentinelAddress) { - databaseConfigurationImpl->checkAndApplySentinelAddress("dummydatabaseaddress.local:1234"); - auto address = databaseConfigurationImpl->getSentinelAddress(boost::none); + databaseConfigurationImpl->checkAndApplyServerAddress("dummydatabaseaddress.local:1234"); + databaseConfigurationImpl->checkAndApplySentinelPorts("51234"); + const auto serverAddresses(databaseConfigurationImpl->getServerAddresses()); + const auto address = databaseConfigurationImpl->getSentinelAddress(boost::none); EXPECT_NE(boost::none, databaseConfigurationImpl->getSentinelAddress(boost::none)); EXPECT_EQ("dummydatabaseaddress.local", address->getHost()); - EXPECT_EQ(1234, ntohs(address->getPort())); + EXPECT_EQ(51234, ntohs(address->getPort())); + EXPECT_EQ(1U, serverAddresses.size()); + EXPECT_EQ("dummydatabaseaddress.local", serverAddresses.at(0).getHost()); + EXPECT_EQ(1234U, ntohs(serverAddresses.at(0).getPort())); +} + +TEST_F(DatabaseConfigurationImplTest, CanApplyAndReturnSentinelAddressDefaultSentinelPort) +{ + databaseConfigurationImpl->checkAndApplyServerAddress("dummydatabaseaddress.local:1234"); + databaseConfigurationImpl->checkAndApplySentinelPorts(""); + const auto serverAddresses(databaseConfigurationImpl->getServerAddresses()); + const auto address = databaseConfigurationImpl->getSentinelAddress(boost::none); + EXPECT_NE(boost::none, databaseConfigurationImpl->getSentinelAddress(boost::none)); + EXPECT_EQ("dummydatabaseaddress.local", address->getHost()); + EXPECT_EQ(26379, ntohs(address->getPort())); + EXPECT_EQ(1U, serverAddresses.size()); + EXPECT_EQ("dummydatabaseaddress.local", serverAddresses.at(0).getHost()); + EXPECT_EQ(1234U, ntohs(serverAddresses.at(0).getPort())); } TEST_F(DatabaseConfigurationImplTest, DefaultSentinelMasterNameIsEmpty) { - EXPECT_EQ("", databaseConfigurationImpl->getSentinelMasterName()); + EXPECT_EQ("dbaasmaster", databaseConfigurationImpl->getSentinelMasterName(boost::none)); } TEST_F(DatabaseConfigurationImplTest, CanApplyAndReturnSentinelMasterName) { - databaseConfigurationImpl->checkAndApplySentinelMasterName("mymaster"); - EXPECT_EQ("mymaster", databaseConfigurationImpl->getSentinelMasterName()); + databaseConfigurationImpl->checkAndApplySentinelMasterNames("mymaster"); + EXPECT_EQ("mymaster", databaseConfigurationImpl->getSentinelMasterName(boost::none)); } -TEST_F(DatabaseConfigurationImplTest, CanReturnSDLClusterAddress) +TEST_F(DatabaseConfigurationImplTest, CanApplyAndReturnSentinelMasterNames) { - databaseConfigurationImpl->checkAndApplyDbType("sdl-cluster"); + databaseConfigurationImpl->checkAndApplySentinelMasterNames("mymaster-0,mymaster-1,mymaster-2"); + EXPECT_EQ("mymaster-0", databaseConfigurationImpl->getSentinelMasterName(0)); + EXPECT_EQ("mymaster-1", databaseConfigurationImpl->getSentinelMasterName(1)); + EXPECT_EQ("mymaster-2", databaseConfigurationImpl->getSentinelMasterName(2)); +} + +TEST_F(DatabaseConfigurationImplTest, CanApplyAndReturnDefaultSentinelMasterNamesWhenNotAllMasterNamesAreSet) +{ + databaseConfigurationImpl->checkAndApplySentinelMasterNames("mymaster-0"); + EXPECT_EQ("mymaster-0", databaseConfigurationImpl->getSentinelMasterName(0)); + EXPECT_EQ("dbaasmaster", databaseConfigurationImpl->getSentinelMasterName(1)); + EXPECT_EQ("dbaasmaster", databaseConfigurationImpl->getSentinelMasterName(2)); +} + +TEST_F(DatabaseConfigurationImplTest, CanReturnSDLSentinelClusterAddresses) +{ + databaseConfigurationImpl->checkAndApplyDbType("sdl-sentinel-cluster"); databaseConfigurationImpl->checkAndApplyServerAddress("cluster-0.local"); databaseConfigurationImpl->checkAndApplyServerAddress("cluster-1.local"); databaseConfigurationImpl->checkAndApplyServerAddress("cluster-2.local"); - databaseConfigurationImpl->checkAndApplySentinelAddress("cluster-0.local:54321"); + databaseConfigurationImpl->checkAndApplySentinelPorts("54321,54322,54323"); auto address0 = databaseConfigurationImpl->getSentinelAddress(0); auto address1 = databaseConfigurationImpl->getSentinelAddress(1); auto address2 = databaseConfigurationImpl->getSentinelAddress(2); @@ -165,14 +223,36 @@ TEST_F(DatabaseConfigurationImplTest, CanReturnSDLClusterAddress) EXPECT_EQ("cluster-1.local", address1->getHost()); EXPECT_EQ("cluster-2.local", address2->getHost()); EXPECT_EQ(54321, ntohs(address0->getPort())); + EXPECT_EQ(54322, ntohs(address1->getPort())); + EXPECT_EQ(54323, ntohs(address2->getPort())); } -TEST_F(DatabaseConfigurationImplTest, CanReturnDefaultPortForSDLClusterAddress) +TEST_F(DatabaseConfigurationImplTest, CanReturnSDLSentinelPorts) { + databaseConfigurationImpl->checkAndApplyDbType("sdl-sentinel-cluster"); databaseConfigurationImpl->checkAndApplyServerAddress("cluster-0.local"); - databaseConfigurationImpl->checkAndApplySentinelAddress("cluster-0.local"); + databaseConfigurationImpl->checkAndApplyServerAddress("cluster-1.local"); + databaseConfigurationImpl->checkAndApplyServerAddress("cluster-2.local"); + databaseConfigurationImpl->checkAndApplySentinelPorts("54321"); auto address0 = databaseConfigurationImpl->getSentinelAddress(0); + auto address1 = databaseConfigurationImpl->getSentinelAddress(1); + auto address2 = databaseConfigurationImpl->getSentinelAddress(2); EXPECT_NE(boost::none, databaseConfigurationImpl->getSentinelAddress(0)); + EXPECT_NE(boost::none, databaseConfigurationImpl->getSentinelAddress(1)); + EXPECT_NE(boost::none, databaseConfigurationImpl->getSentinelAddress(2)); EXPECT_EQ("cluster-0.local", address0->getHost()); - EXPECT_EQ(26379, ntohs(address0->getPort())); + EXPECT_EQ("cluster-1.local", address1->getHost()); + EXPECT_EQ("cluster-2.local", address2->getHost()); + EXPECT_EQ(54321, ntohs(address0->getPort())); + EXPECT_EQ(26379, ntohs(address1->getPort())); + EXPECT_EQ(26379, ntohs(address2->getPort())); +} + +TEST_F(DatabaseConfigurationImplTest, CanReturnDefaultSentinelPortForSDLClusterAddress) +{ + databaseConfigurationImpl->checkAndApplyServerAddress("cluster-0.local"); + auto address = databaseConfigurationImpl->getSentinelAddress(boost::none); + EXPECT_NE(boost::none, databaseConfigurationImpl->getSentinelAddress(boost::none)); + EXPECT_EQ("cluster-0.local", address->getHost()); + EXPECT_EQ(26379, ntohs(address->getPort())); }