}
}
+bool
+HostDataSourceFactory::registeredFactory(const std::string& db_type) {
+ auto index = map_.find(db_type);
+ return (index != map_.end());
+}
+
void
HostDataSourceFactory::printRegistered() {
std::stringstream txt;
static bool deregisterFactory(const std::string& db_type,
bool no_log = false);
+ /// @brief Check if a host data source factory was registered
+ ///
+ /// @param db_type database type
+ /// @return true if a factory was registered for db_type, false if not.
+ static bool registeredFactory(const std::string& db_type);
+
/// @brief Prints out all registered backends.
///
/// We need a dedicated method for this, because we sometimes can't log
EXPECT_FALSE(registerFactory());
}
+// Verify a factory registration can be checked.
+TEST_F(HostDataSourceFactoryTest, registeredFactory) {
+ // Not yet registered
+ EXPECT_FALSE(HostDataSourceFactory::registeredFactory("mem"));
+ EXPECT_FALSE(HostDataSourceFactory::registeredFactory("mem1"));
+
+ // Register mem
+ EXPECT_TRUE(registerFactory());
+
+ // Now mem is registered but not mem1
+ EXPECT_TRUE(HostDataSourceFactory::registeredFactory("mem"));
+ EXPECT_FALSE(HostDataSourceFactory::registeredFactory("mem1"));
+}
+
// Verify a factory can be registered and deregistered
TEST_F(HostDataSourceFactoryTest, deregisterFactory) {
// Does not exist at the beginning
// Register and deregister
EXPECT_TRUE(registerFactory());
EXPECT_TRUE(HostDataSourceFactory::deregisterFactory("mem"));
+ EXPECT_FALSE(HostDataSourceFactory::registeredFactory("mem"));
// No longer exists
EXPECT_FALSE(HostDataSourceFactory::deregisterFactory("mem"));