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