summaryrefslogtreecommitdiff
path: root/src/mongo/util/namespace_string_util_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/util/namespace_string_util_test.cpp')
-rw-r--r--src/mongo/util/namespace_string_util_test.cpp23
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);