diff options
Diffstat (limited to 'src/mongo/db/pipeline/expression_date_test.cpp')
| -rw-r--r-- | src/mongo/db/pipeline/expression_date_test.cpp | 84 |
1 files changed, 29 insertions, 55 deletions
diff --git a/src/mongo/db/pipeline/expression_date_test.cpp b/src/mongo/db/pipeline/expression_date_test.cpp index c4b7a01db42..efe0a577ef6 100644 --- a/src/mongo/db/pipeline/expression_date_test.cpp +++ b/src/mongo/db/pipeline/expression_date_test.cpp @@ -64,10 +64,8 @@ TEST_F(ExpressionDateFromPartsTest, SerializesToObjectSyntax) { {"second", Document{{"$const", 15}}}, {"millisecond", Document{{"$const", 414}}}, {"timezone", Document{{"$const", "America/Los_Angeles"_sd}}}}}}); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); } TEST_F(ExpressionDateFromPartsTest, OptimizesToConstantIfAllInputsAreConstant) { @@ -185,10 +183,8 @@ TEST_F(ExpressionDateToPartsTest, SerializesToObjectSyntax) { Document{{"date", Document{{"$const", Date_t{}}}}, {"timezone", Document{{"$const", "Europe/London"_sd}}}, {"iso8601", Document{{"$const", false}}}}}}); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); } TEST_F(ExpressionDateToPartsTest, OptimizesToConstantIfAllInputsAreConstant) { @@ -434,28 +430,22 @@ TEST_F(DateExpressionTest, SerializesToObjectSyntax) { Value(Document{{expName, Document{{"date", Document{{"$const", Date_t{}}}}, {"timezone", Document{{"$const", "Europe/London"_sd}}}}}}); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); // Test that it serializes to the full format if given a date. spec = BSON(expName << Date_t{}); expectedSerialization = Value(Document{{expName, Document{{"date", Document{{"$const", Date_t{}}}}}}}); dateExp = Expression::parseExpression(expCtx.get(), spec, expCtx->variablesParseState); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); // Test that it serializes to the full format if given a date within an array. spec = BSON(expName << BSON_ARRAY(Date_t{})); dateExp = Expression::parseExpression(expCtx.get(), spec, expCtx->variablesParseState); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); } } @@ -608,10 +598,8 @@ TEST_F(ExpressionDateToStringTest, SerializesToObjectSyntax) { {"timezone", Document{{"$const", "Europe/London"_sd}}}, {"onNull", Document{{"$const", "nullDefault"_sd}}}}}}); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); } TEST_F(ExpressionDateToStringTest, OptimizesToConstantIfAllInputsAreConstant) { @@ -836,10 +824,8 @@ TEST_F(ExpressionDateFromStringTest, SerializesToObjectSyntax) { Document{{"$dateFromString", Document{{"dateString", Document{{"$const", "2017-07-04T13:06:44Z"_sd}}}}}}); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); // Test that it serializes to the full format if given an object specification. spec = BSON("$dateFromString" << BSON("dateString" @@ -852,10 +838,8 @@ TEST_F(ExpressionDateFromStringTest, SerializesToObjectSyntax) { Document{{"dateString", Document{{"$const", "2017-07-04T13:06:44Z"_sd}}}, {"timezone", Document{{"$const", "Europe/London"_sd}}}}}}); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); spec = BSON("$dateFromString" << BSON("dateString" << "2017-07-04T13:06:44Z" @@ -870,10 +854,8 @@ TEST_F(ExpressionDateFromStringTest, SerializesToObjectSyntax) { {"timezone", Document{{"$const", "Europe/London"_sd}}}, {"format", Document{{"$const", "%Y-%d-%mT%H:%M:%S"_sd}}}}}}); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); spec = BSON("$dateFromString" << BSON("dateString" << "2017-07-04T13:06:44Z" @@ -894,10 +876,8 @@ TEST_F(ExpressionDateFromStringTest, SerializesToObjectSyntax) { {"onNull", Document{{"$const", "nullDefault"_sd}}}, {"onError", Document{{"$const", "errorDefault"_sd}}}}}}); - ASSERT_VALUE_EQ(dateExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateExp->serialize(false), expectedSerialization); } TEST_F(ExpressionDateFromStringTest, OptimizesToConstantIfAllInputsAreConstant) { @@ -1436,15 +1416,13 @@ void assertParsesAndSerializesExpression(boost::intrusive_ptr<ExpressionContextF const auto expression = Expression::parseExpression(expCtx.get(), expressionSpec, expCtx->variablesParseState); const auto expectedSerialization = Value(expectedSerializedExpressionSpec); - ASSERT_VALUE_EQ(expression->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(expression->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(expression->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(expression->serialize(false), expectedSerialization); // Verify that parsed and then serialized expression is the same. ASSERT_VALUE_EQ(Expression::parseExpression( expCtx.get(), expectedSerializedExpressionSpec, expCtx->variablesParseState) - ->serialize(), + ->serialize(false), expectedSerialization); } @@ -1793,7 +1771,7 @@ TEST_F(ExpressionDateDiffTest, AddsDependencies) { auto depsTracker = dateDiffExpression->getDependencies(); ASSERT_TRUE( (depsTracker.fields == - OrderedPathSet{ + std::set<std::string>{ "startDateField", "endDateField", "unitField", "timezoneField", "startOfWeekField"})); } } // namespace ExpressionDateDiffTest @@ -1891,7 +1869,7 @@ TEST_F(ExpressionDateTruncTest, AddsDependencies) { const auto depsTracker = dateTruncExpression->getDependencies(); ASSERT_TRUE( (depsTracker.fields == - OrderedPathSet{ + std::set<std::string>{ "dateField", "unitField", "binSizeField", "timezoneField", "startOfWeekField"})); } } // namespace @@ -1915,10 +1893,8 @@ TEST_F(ExpressionDateArithmeticsTest, SerializesToObject) { Document{{"startDate", Document{{"$const", Date_t{}}}}, {"unit", Document{{"$const", "day"_sd}}}, {"amount", Document{{"$const", 1}}}}}}); - ASSERT_VALUE_EQ(dateAddExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateAddExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateAddExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateAddExp->serialize(false), expectedSerialization); // with timezone doc = BSON(expName << BSON("startDate" << Date_t{} << "unit" @@ -1932,10 +1908,8 @@ TEST_F(ExpressionDateArithmeticsTest, SerializesToObject) { {"unit", Document{{"$const", "day"_sd}}}, {"amount", Document{{"$const", -1}}}, {"timezone", Document{{"$const", "America/New_York"_sd}}}}}}); - ASSERT_VALUE_EQ(dateAddExp->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}), - expectedSerialization); - ASSERT_VALUE_EQ(dateAddExp->serialize(), expectedSerialization); + ASSERT_VALUE_EQ(dateAddExp->serialize(true), expectedSerialization); + ASSERT_VALUE_EQ(dateAddExp->serialize(false), expectedSerialization); } } |
