X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=tst%2Fasyncstorageimpl_test.cpp;h=d1b364934f69943ae671d520e4d0e4e4bcfc9553;hb=598565e2509e3c9d5cbc839c567f77ae01bb7e5f;hp=b6a2319843b46e2ae75021eb48b3450ef9460d77;hpb=ef2bf51d04aaf01fa0cabdcaf905b23423067662;p=ric-plt%2Fsdl.git diff --git a/tst/asyncstorageimpl_test.cpp b/tst/asyncstorageimpl_test.cpp index b6a2319..d1b3649 100644 --- a/tst/asyncstorageimpl_test.cpp +++ b/tst/asyncstorageimpl_test.cpp @@ -14,14 +14,21 @@ limitations under the License. */ +/* + * This source code is part of the near-RT RIC (RAN Intelligent Controller) + * platform project (RICP). +*/ + #include #include +#include "config.h" #include "private/asyncdummystorage.hpp" #include "private/asyncstorageimpl.hpp" #include "private/createlogger.hpp" #include "private/logger.hpp" #include "private/redis/asyncredisstorage.hpp" #include "private/tst/enginemock.hpp" +#include "private/tst/asyncdatabasediscoverymock.hpp" #include "private/tst/databaseconfigurationmock.hpp" #include "private/tst/namespaceconfigurationsmock.hpp" @@ -37,6 +44,7 @@ namespace std::shared_ptr> engineMock; std::shared_ptr dummyDatabaseConfiguration; std::shared_ptr> namespaceConfigurationsMock; + std::shared_ptr> discoveryMock; int fd; AsyncStorage::Namespace ns; Engine::Callback storedCallback; @@ -47,13 +55,34 @@ namespace engineMock(std::make_shared>()), dummyDatabaseConfiguration(std::make_shared()), namespaceConfigurationsMock(std::make_shared>()), + discoveryMock(std::make_shared>()), fd(10), ns("someKnownNamespace"), logger(createLogger(SDL_LOG_PREFIX)) { dummyDatabaseConfiguration->checkAndApplyDbType("redis-standalone"); dummyDatabaseConfiguration->checkAndApplyServerAddress("dummydatabaseaddress.local"); - asyncStorageImpl.reset(new AsyncStorageImpl(engineMock, boost::none, dummyDatabaseConfiguration, namespaceConfigurationsMock, logger)); + asyncStorageImpl.reset(new AsyncStorageImpl(engineMock, + boost::none, + dummyDatabaseConfiguration, + namespaceConfigurationsMock, + logger, + std::bind(&AsyncStorageImplTest::asyncDatabaseDiscoveryCreator, + this, + std::placeholders::_1, + std::placeholders::_2, + std::placeholders::_3, + std::placeholders::_4, + std::placeholders::_5))); + } + + std::shared_ptr asyncDatabaseDiscoveryCreator(std::shared_ptr, + const std::string&, + const DatabaseConfiguration&, + const boost::optional&, + std::shared_ptr) + { + return discoveryMock; } void expectNamespaceConfigurationIsDbBackendUseEnabled_returnFalse() @@ -108,8 +137,6 @@ TEST_F(AsyncStorageImplTest, CorrectHandlerIsUsedBasedOnConfiguration) { InSequence dummy; expectNamespaceConfigurationIsDbBackendUseEnabled_returnTrue(); - //AsyncRedisStorage creation causes AsyncHiredisDatabaseDiscovery to post stateChanged callback - expectPostCallback(); AsyncStorage& returnedHandler1 = asyncStorageImpl->getOperationHandler(ns); EXPECT_EQ(typeid(AsyncRedisStorage&), typeid(returnedHandler1)); @@ -117,3 +144,11 @@ TEST_F(AsyncStorageImplTest, CorrectHandlerIsUsedBasedOnConfiguration) AsyncStorage& returnedHandler2 = asyncStorageImpl->getOperationHandler(ns); EXPECT_EQ(typeid(AsyncDummyStorage&), typeid(returnedHandler2)); } + +TEST_F(AsyncStorageImplTest, CorrectSdlClusterHandlerIsUsedBasedOnConfiguration) +{ + expectNamespaceConfigurationIsDbBackendUseEnabled_returnTrue(); + dummyDatabaseConfiguration->checkAndApplyDbType("sdl-sentinel-cluster"); + AsyncStorage& returnedHandler = asyncStorageImpl->getOperationHandler(ns); + EXPECT_EQ(typeid(AsyncRedisStorage&), typeid(returnedHandler)); +}