diff options
Diffstat (limited to 'src/mongo/db/commands/mr_test.cpp')
-rw-r--r-- | src/mongo/db/commands/mr_test.cpp | 69 |
1 files changed, 37 insertions, 32 deletions
diff --git a/src/mongo/db/commands/mr_test.cpp b/src/mongo/db/commands/mr_test.cpp index 53b06339448..304edd39f83 100644 --- a/src/mongo/db/commands/mr_test.cpp +++ b/src/mongo/db/commands/mr_test.cpp @@ -41,6 +41,7 @@ #include "mongo/db/catalog/collection_options.h" #include "mongo/db/client.h" #include "mongo/db/commands.h" +#include "mongo/db/commands/map_reduce_gen.h" #include "mongo/db/dbdirectclient.h" #include "mongo/db/json.h" #include "mongo/db/op_observer_noop.h" @@ -78,17 +79,17 @@ void _compareOutputOptionField(const std::string& dbname, } /** - * Returns string representation of mr::Config::OutputType + * Returns string representation of OutputType */ -std::string _getOutTypeString(mr::OutputType outType) { +std::string _getOutTypeString(OutputType outType) { switch (outType) { - case mr::OutputType::kReplace: + case OutputType::Replace: return "REPLACE"; - case mr::OutputType::kMerge: + case OutputType::Merge: return "MERGE"; - case mr::OutputType::kReduce: + case OutputType::Reduce: return "REDUCE"; - case mr::OutputType::kInMemory: + case OutputType::InMemory: return "INMEMORY"; } MONGO_UNREACHABLE; @@ -103,9 +104,10 @@ void _testConfigParseOutputOptions(const std::string& dbname, const std::string& expectedCollectionName, const std::string& expectedFinalNamespace, bool expectedOutNonAtomic, - mr::OutputType expectedOutType) { + OutputType expectedOutType) { const BSONObj cmdObj = fromjson(cmdObjStr); - mr::OutputOptions outputOptions = mr::parseOutputOptions(dbname, cmdObj); + map_reduce_common::OutputOptions outputOptions = + map_reduce_common::parseOutputOptions(dbname, cmdObj); _compareOutputOptionField(dbname, cmdObjStr, "outDb", outputOptions.outDB, expectedOutDb); _compareOutputOptionField( dbname, cmdObjStr, "collectionName", outputOptions.collectionName, expectedCollectionName); @@ -124,31 +126,34 @@ void _testConfigParseOutputOptions(const std::string& dbname, } /** - * Tests for mr::parseOutputOptions. + * Tests for map_reduce_common::parseOutputOptions. */ TEST(ConfigOutputOptionsTest, parseOutputOptions) { // Missing 'out' field. - ASSERT_THROWS(mr::parseOutputOptions("mydb", fromjson("{}")), AssertionException); + ASSERT_THROWS(map_reduce_common::parseOutputOptions("mydb", fromjson("{}")), + AssertionException); // 'out' must be either string or object. - ASSERT_THROWS(mr::parseOutputOptions("mydb", fromjson("{out: 99}")), AssertionException); + ASSERT_THROWS(map_reduce_common::parseOutputOptions("mydb", fromjson("{out: 99}")), + AssertionException); // 'out.nonAtomic' is not supported with normal, replace or inline. - ASSERT_THROWS( - mr::parseOutputOptions("mydb", fromjson("{out: {normal: 'mycoll', nonAtomic: true}}")), - AssertionException); - ASSERT_THROWS( - mr::parseOutputOptions("mydb", fromjson("{out: {replace: 'mycoll', nonAtomic: true}}")), - AssertionException); - ASSERT_THROWS( - mr::parseOutputOptions("mydb", fromjson("{out: {inline: 'mycoll', nonAtomic: true}}")), - AssertionException); + ASSERT_THROWS(map_reduce_common::parseOutputOptions( + "mydb", fromjson("{out: {normal: 'mycoll', nonAtomic: true}}")), + AssertionException); + ASSERT_THROWS(map_reduce_common::parseOutputOptions( + "mydb", fromjson("{out: {replace: 'mycoll', nonAtomic: true}}")), + AssertionException); + ASSERT_THROWS(map_reduce_common::parseOutputOptions( + "mydb", fromjson("{out: {inline: 'mycoll', nonAtomic: true}}")), + AssertionException); // Unknown output specifer. - ASSERT_THROWS(mr::parseOutputOptions("mydb", fromjson("{out: {no_such_out_type: 'mycoll'}}")), + ASSERT_THROWS(map_reduce_common::parseOutputOptions( + "mydb", fromjson("{out: {no_such_out_type: 'mycoll'}}")), AssertionException); // 'out' is string. _testConfigParseOutputOptions( - "mydb", "{out: 'mycoll'}", "", "mycoll", "mydb.mycoll", false, mr::OutputType::kReplace); + "mydb", "{out: 'mycoll'}", "", "mycoll", "mydb.mycoll", false, OutputType::Replace); // 'out' is object. _testConfigParseOutputOptions("mydb", "{out: {normal: 'mycoll'}}", @@ -156,7 +161,7 @@ TEST(ConfigOutputOptionsTest, parseOutputOptions) { "mycoll", "mydb.mycoll", false, - mr::OutputType::kReplace); + OutputType::Replace); // 'out.db' overrides dbname parameter _testConfigParseOutputOptions("mydb1", "{out: {replace: 'mycoll', db: 'mydb2'}}", @@ -164,7 +169,7 @@ TEST(ConfigOutputOptionsTest, parseOutputOptions) { "mycoll", "mydb2.mycoll", false, - mr::OutputType::kReplace); + OutputType::Replace); // 'out.nonAtomic' is supported with merge and reduce. _testConfigParseOutputOptions("mydb", "{out: {merge: 'mycoll', nonAtomic: true}}", @@ -172,14 +177,14 @@ TEST(ConfigOutputOptionsTest, parseOutputOptions) { "mycoll", "mydb.mycoll", true, - mr::OutputType::kMerge); + OutputType::Merge); _testConfigParseOutputOptions("mydb", "{out: {reduce: 'mycoll', nonAtomic: true}}", "", "mycoll", "mydb.mycoll", true, - mr::OutputType::kReduce); + OutputType::Reduce); // inline _testConfigParseOutputOptions("mydb1", "{out: {inline: 'mycoll', db: 'mydb2'}}", @@ -187,7 +192,7 @@ TEST(ConfigOutputOptionsTest, parseOutputOptions) { "", "", false, - mr::OutputType::kInMemory); + OutputType::InMemory); // Order should not matter in fields of 'out' object. _testConfigParseOutputOptions("mydb1", @@ -196,35 +201,35 @@ TEST(ConfigOutputOptionsTest, parseOutputOptions) { "mycoll", "mydb2.mycoll", false, - mr::OutputType::kReplace); + OutputType::Replace); _testConfigParseOutputOptions("mydb1", "{out: {db: 'mydb2', replace: 'mycoll'}}", "mydb2", "mycoll", "mydb2.mycoll", false, - mr::OutputType::kReplace); + OutputType::Replace); _testConfigParseOutputOptions("mydb1", "{out: {nonAtomic: true, merge: 'mycoll'}}", "", "mycoll", "mydb1.mycoll", true, - mr::OutputType::kMerge); + OutputType::Merge); _testConfigParseOutputOptions("mydb1", "{out: {nonAtomic: true, reduce: 'mycoll'}}", "", "mycoll", "mydb1.mycoll", true, - mr::OutputType::kReduce); + OutputType::Reduce); _testConfigParseOutputOptions("mydb1", "{out: {db: 'mydb2', inline: 'mycoll'}}", "mydb2", "", "", false, - mr::OutputType::kInMemory); + OutputType::InMemory); } TEST(ConfigTest, ParseCollation) { |