diff options
Diffstat (limited to 'src/mongo/db/repl/repl_set_config_test.cpp')
-rw-r--r-- | src/mongo/db/repl/repl_set_config_test.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mongo/db/repl/repl_set_config_test.cpp b/src/mongo/db/repl/repl_set_config_test.cpp index 2ce4bb6fcc4..7a2c5fe33f3 100644 --- a/src/mongo/db/repl/repl_set_config_test.cpp +++ b/src/mongo/db/repl/repl_set_config_test.cpp @@ -1968,6 +1968,31 @@ TEST(ReplSetConfig, IsImplicitDefaultWriteConcernMajority) { ASSERT_OK(config.validate()); ASSERT_FALSE(config.isImplicitDefaultWriteConcernMajority()); } + +TEST(ReplSetConfig, MakeCustomWriteMode) { + auto config = ReplSetConfig::parse(BSON("_id" + << "rs0" + << "version" << 1 << "term" << 1.0 << "protocolVersion" + << 1 << "members" + << BSON_ARRAY(BSON("_id" << 0 << "host" + << "localhost:12345" + << "tags" + << BSON("NYC" + << "NY"))))); + + auto swPattern = config.makeCustomWriteMode(BSON("NYC" + << "invalid value type")); + ASSERT_FALSE(swPattern.isOK()); + ASSERT_EQ(swPattern.getStatus().code(), ErrorCodes::BadValue); + + swPattern = config.makeCustomWriteMode(BSON("NonExistentTag" << 1)); + ASSERT_FALSE(swPattern.isOK()); + ASSERT_EQ(swPattern.getStatus().code(), ErrorCodes::NoSuchKey); + + swPattern = config.makeCustomWriteMode(BSON("NYC" << 1)); + ASSERT_TRUE(swPattern.isOK()); +} + } // namespace } // namespace repl } // namespace mongo |