diff options
Diffstat (limited to 'src/mongo/util/namespace_string_util_test.cpp')
| -rw-r--r-- | src/mongo/util/namespace_string_util_test.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/mongo/util/namespace_string_util_test.cpp b/src/mongo/util/namespace_string_util_test.cpp index 0e226c86ddd..260699095ed 100644 --- a/src/mongo/util/namespace_string_util_test.cpp +++ b/src/mongo/util/namespace_string_util_test.cpp @@ -36,6 +36,7 @@ #include "mongo/bson/bsonobjbuilder.h" #include "mongo/bson/oid.h" #include "mongo/db/namespace_string.h" +#include "mongo/db/tenant_id.h" #include "mongo/idl/server_parameter_test_util.h" #include "mongo/unittest/assert.h" #include "mongo/unittest/framework.h" @@ -156,6 +157,28 @@ TEST(NamespaceStringUtilTest, ASSERT_EQ(nss.dbName().toString_forTest(), dbNameStr); } +TEST(NamespaceStringUtilTest, NamespaceStringToDatabaseNameRoundTrip) { + struct Scenario { + bool multitenancy; + boost::optional<TenantId> tenant; + std::string database; + }; + + for (auto& scenario : { + Scenario{false, boost::none, "foo"}, + Scenario{true, boost::none, "config"}, + Scenario{true, TenantId{OID::gen()}, "foo"}, + }) { + RAIIServerParameterControllerForTest mc("multitenancySupport", scenario.multitenancy); + + auto expected = NamespaceString::createNamespaceString_forTest( + scenario.tenant, scenario.database, "bar"); + auto actual = NamespaceStringUtil::deserialize(expected.dbName(), "bar"); + + ASSERT_EQ(actual, expected); + } +} + // Deserialize NamespaceString when multitenancySupport and featureFlagRequireTenantID are disabled. TEST(NamespaceStringUtilTest, DeserializeMultitenancySupportOffFeatureFlagRequireTenantIDOff) { RAIIServerParameterControllerForTest multitenanyController("multitenancySupport", false); |
