diff options
Diffstat (limited to 'src/mongo/db/catalog/index_build_entry_test.cpp')
-rw-r--r-- | src/mongo/db/catalog/index_build_entry_test.cpp | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/src/mongo/db/catalog/index_build_entry_test.cpp b/src/mongo/db/catalog/index_build_entry_test.cpp index 10e5221af46..9f774514a9e 100644 --- a/src/mongo/db/catalog/index_build_entry_test.cpp +++ b/src/mongo/db/catalog/index_build_entry_test.cpp @@ -35,8 +35,8 @@ #include "mongo/bson/bsonobj.h" #include "mongo/bson/bsonobjbuilder.h" #include "mongo/bson/bsontypes.h" -#include "mongo/db/catalog/commit_quorum_options.h" #include "mongo/db/catalog/index_build_entry_gen.h" +#include "mongo/db/write_concern_options.h" #include "mongo/unittest/unittest.h" #include "mongo/util/assert_util.h" #include "mongo/util/net/hostandport.h" @@ -45,6 +45,8 @@ namespace mongo { namespace { +enum CommitQuorumOptions { Number, Majority, Tag }; + const std::vector<std::string> generateIndexes(size_t numIndexes) { std::vector<std::string> indexes; for (size_t i = 0; i < numIndexes; i++) { @@ -53,6 +55,23 @@ const std::vector<std::string> generateIndexes(size_t numIndexes) { return indexes; } +const WriteConcernOptions generateCommitQuorum(CommitQuorumOptions option) { + switch (option) { + case Number: + return WriteConcernOptions(1, WriteConcernOptions::SyncMode::UNSET, 0); + break; + case Majority: + return WriteConcernOptions( + WriteConcernOptions::kMajority, WriteConcernOptions::SyncMode::UNSET, 0); + break; + case Tag: + return WriteConcernOptions("someTag", WriteConcernOptions::SyncMode::UNSET, 0); + break; + default: + return WriteConcernOptions(0, WriteConcernOptions::SyncMode::UNSET, 0); + } +} + const std::vector<HostAndPort> generateCommitReadyMembers(size_t numMembers) { std::vector<HostAndPort> members; for (size_t i = 0; i < numMembers; i++) { @@ -64,14 +83,16 @@ const std::vector<HostAndPort> generateCommitReadyMembers(size_t numMembers) { TEST(IndexBuildEntryTest, IndexBuildEntryWithRequiredFields) { const UUID id = UUID::gen(); const UUID collectionUUID = UUID::gen(); - const CommitQuorumOptions commitQuorum(1); + const WriteConcernOptions commitQuorum = generateCommitQuorum(CommitQuorumOptions::Number); const std::vector<std::string> indexes = generateIndexes(1); IndexBuildEntry entry(id, collectionUUID, commitQuorum, indexes); ASSERT_EQUALS(entry.getBuildUUID(), id); ASSERT_EQUALS(entry.getCollectionUUID(), collectionUUID); - ASSERT_EQUALS(entry.getCommitQuorum().numNodes, 1); + ASSERT_EQUALS(entry.getCommitQuorum().wNumNodes, 1); + ASSERT_TRUE(entry.getCommitQuorum().syncMode == WriteConcernOptions::SyncMode::UNSET); + ASSERT_EQUALS(entry.getCommitQuorum().wTimeout, 0); ASSERT_EQUALS(entry.getIndexNames().size(), indexes.size()); ASSERT_FALSE(entry.getPrepareIndexBuild()); } @@ -79,7 +100,7 @@ TEST(IndexBuildEntryTest, IndexBuildEntryWithRequiredFields) { TEST(IndexBuildEntryTest, IndexBuildEntryWithOptionalFields) { const UUID id = UUID::gen(); const UUID collectionUUID = UUID::gen(); - const CommitQuorumOptions commitQuorum(CommitQuorumOptions::kMajority); + const WriteConcernOptions commitQuorum = generateCommitQuorum(CommitQuorumOptions::Majority); const std::vector<std::string> indexes = generateIndexes(3); IndexBuildEntry entry(id, collectionUUID, commitQuorum, indexes); @@ -90,7 +111,9 @@ TEST(IndexBuildEntryTest, IndexBuildEntryWithOptionalFields) { ASSERT_EQUALS(entry.getBuildUUID(), id); ASSERT_EQUALS(entry.getCollectionUUID(), collectionUUID); - ASSERT_EQUALS(entry.getCommitQuorum().mode, CommitQuorumOptions::kMajority); + ASSERT_EQUALS(entry.getCommitQuorum().wMode, WriteConcernOptions::kMajority); + ASSERT_TRUE(entry.getCommitQuorum().syncMode == WriteConcernOptions::SyncMode::UNSET); + ASSERT_EQUALS(entry.getCommitQuorum().wTimeout, 0); ASSERT_EQUALS(entry.getIndexNames().size(), indexes.size()); ASSERT_TRUE(entry.getPrepareIndexBuild()); ASSERT_TRUE(entry.getCommitReadyMembers()->size() == 2); @@ -99,7 +122,7 @@ TEST(IndexBuildEntryTest, IndexBuildEntryWithOptionalFields) { TEST(IndexBuildEntryTest, SerializeAndDeserialize) { const UUID id = UUID::gen(); const UUID collectionUUID = UUID::gen(); - const CommitQuorumOptions commitQuorum("someTag"); + const WriteConcernOptions commitQuorum = generateCommitQuorum(CommitQuorumOptions::Tag); const std::vector<std::string> indexes = generateIndexes(1); IndexBuildEntry entry(id, collectionUUID, commitQuorum, indexes); @@ -114,7 +137,9 @@ TEST(IndexBuildEntryTest, SerializeAndDeserialize) { ASSERT_EQUALS(rebuiltEntry.getBuildUUID(), id); ASSERT_EQUALS(rebuiltEntry.getCollectionUUID(), collectionUUID); - ASSERT_EQUALS(rebuiltEntry.getCommitQuorum().mode, "someTag"); + ASSERT_EQUALS(rebuiltEntry.getCommitQuorum().wMode, "someTag"); + ASSERT_TRUE(rebuiltEntry.getCommitQuorum().syncMode == WriteConcernOptions::SyncMode::UNSET); + ASSERT_EQUALS(rebuiltEntry.getCommitQuorum().wTimeout, 0); ASSERT_EQUALS(rebuiltEntry.getIndexNames().size(), indexes.size()); ASSERT_FALSE(rebuiltEntry.getPrepareIndexBuild()); ASSERT_TRUE(rebuiltEntry.getCommitReadyMembers()->size() == 3); |