summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/mr_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/commands/mr_test.cpp')
-rw-r--r--src/mongo/db/commands/mr_test.cpp69
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) {