diff options
| author | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
|---|---|---|
| committer | Lucas de Castro Borges <lucas@gnuabordo.com.br> | 2025-02-11 15:07:35 -0300 |
| commit | 4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch) | |
| tree | 1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/db/pipeline/document_source_match_test.cpp | |
| parent | aa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff) | |
| parent | 8f0827553e09872941945a093b647a4211a9db7f (diff) | |
Update upstream source from tag 'upstream/6.0.0'master
Update to upstream version '6.0.0'
with Debian dir 5604a80ec1c96ca76f25f40d78e6ef855abec322
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 |
