diff options
Diffstat (limited to 'src/mongo/db/pipeline/document_source_match_test.cpp')
| -rw-r--r-- | src/mongo/db/pipeline/document_source_match_test.cpp | 71 |
1 files changed, 6 insertions, 65 deletions
diff --git a/src/mongo/db/pipeline/document_source_match_test.cpp b/src/mongo/db/pipeline/document_source_match_test.cpp index 04e5f895469..f5b53a393e8 100644 --- a/src/mongo/db/pipeline/document_source_match_test.cpp +++ b/src/mongo/db/pipeline/document_source_match_test.cpp @@ -54,6 +54,7 @@ using std::string; // This provides access to getExpCtx(), but we'll use a different name for this test suite. using DocumentSourceMatchTest = AggregationContextFixture; +constexpr auto kExplain = ExplainOptions::Verbosity::kQueryPlanner; TEST_F(DocumentSourceMatchTest, RedactSafePortion) { auto expCtx = getExpCtx(); @@ -603,6 +604,8 @@ DEATH_TEST_REGEX_F(DocumentSourceMatchTest, const auto matchSpec = BSON("a" << BSON("$elemMatch" << BSON("a.b" << 1))); const auto matchExpression = unittest::assertGet(MatchExpressionParser::parse(matchSpec, expCtx)); + BSONObjBuilder out; + matchExpression->serialize(&out); DocumentSourceMatch::descendMatchOnPath(matchExpression.get(), "a", expCtx); } @@ -695,71 +698,9 @@ TEST_F(DocumentSourceMatchTest, ShouldShowOptimizationsInExplainOutputWhenOptimi auto expectedMatch = fromjson("{$match: {a:{$eq: 1}}}"); - ASSERT_VALUE_EQ(Value((static_cast<DocumentSourceMatch*>(optimizedMatch.get())) - ->serialize(SerializationOptions{ - boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)})), - Value(expectedMatch)); -} - -TEST_F(DocumentSourceMatchTest, RedactionWithAnd) { - auto spec = fromjson(R"({ - $match: { - $and: [ - { - "a.c": "abc" - }, - { - "b": { - $gt: 10 - } - } - ] - }})"); - auto docSource = DocumentSourceMatch::createFromBson(spec.firstElement(), getExpCtx()); - ASSERT_BSONOBJ_EQ_AUTO( // NOLINT - R"({ - "$match": { - "$and": [ - { - "HASH<a>.HASH<c>": { - "$eq": "?string" - } - }, - { - "HASH<b>": { - "$gt": "?number" - } - } - ] - } - })", - redact(*docSource)); -} - -TEST_F(DocumentSourceMatchTest, RedactionWithExprPipeline) { - auto spec = fromjson(R"({ - $match: { - $expr: { - $eq: [ - '$foo', - '$bar' - ] - } - } - })"); - auto docSource = DocumentSourceMatch::createFromBson(spec.firstElement(), getExpCtx()); - ASSERT_BSONOBJ_EQ_AUTO( // NOLINT - R"({ - "$match": { - "$expr": { - "$eq": [ - "$HASH<foo>", - "$HASH<bar>" - ] - } - } - })", - redact(*docSource)); + ASSERT_VALUE_EQ( + Value((static_cast<DocumentSourceMatch*>(optimizedMatch.get()))->serialize(kExplain)), + Value(expectedMatch)); } } // namespace |
