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_bucket_auto_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_bucket_auto_test.cpp')
| -rw-r--r-- | src/mongo/db/pipeline/document_source_bucket_auto_test.cpp | 126 |
1 files changed, 3 insertions, 123 deletions
diff --git a/src/mongo/db/pipeline/document_source_bucket_auto_test.cpp b/src/mongo/db/pipeline/document_source_bucket_auto_test.cpp index 4bc3cb0e11a..5bcad8dc0bc 100644 --- a/src/mongo/db/pipeline/document_source_bucket_auto_test.cpp +++ b/src/mongo/db/pipeline/document_source_bucket_auto_test.cpp @@ -89,9 +89,8 @@ public: assertBucketAutoType(bucketAutoStage); vector<Value> explainedStages; - bucketAutoStage->serializeToArray( - explainedStages, - SerializationOptions{boost::make_optional(ExplainOptions::Verbosity::kQueryPlanner)}); + bucketAutoStage->serializeToArray(explainedStages, + ExplainOptions::Verbosity::kQueryPlanner); ASSERT_EQUALS(explainedStages.size(), 1UL); Value expectedExplain = Value(expectedObj); @@ -576,27 +575,12 @@ TEST_F(BucketAutoTests, FailsWithInvalidNumberOfBuckets) { 40243); } -TEST_F(BucketAutoTests, FailsWithNonOrInvalidExpressionGroupBy) { +TEST_F(BucketAutoTests, FailsWithNonExpressionGroupBy) { auto spec = fromjson("{$bucketAuto : {groupBy : 'test', buckets : 1}}"); ASSERT_THROWS_CODE(createBucketAuto(spec), AssertionException, 40239); spec = fromjson("{$bucketAuto : {groupBy : {test : 'test'}, buckets : 1}}"); ASSERT_THROWS_CODE(createBucketAuto(spec), AssertionException, 40239); - - spec = fromjson("{$bucketAuto : {groupBy : '', buckets : 1}}"); - ASSERT_THROWS_CODE(createBucketAuto(spec), AssertionException, 40239); - - spec = fromjson("{$bucketAuto : {groupBy : {}}, buckets : 1}}"); - ASSERT_THROWS_CODE(createBucketAuto(spec), AssertionException, 40239); - - spec = fromjson("{$bucketAuto : {groupBy : '$'}, buckets : 1}}"); - ASSERT_THROWS_CODE(createBucketAuto(spec), AssertionException, 40239); - - spec = fromjson("{$bucketAuto : {groupBy : []}, buckets : 1}}"); - ASSERT_THROWS_CODE(createBucketAuto(spec), AssertionException, 40239); - - spec = fromjson("{$bucketAuto : {groupBy : null}, buckets : 1}}"); - ASSERT_THROWS_CODE(createBucketAuto(spec), AssertionException, 40239); } TEST_F(BucketAutoTests, FailsWithNonObjectArgument) { @@ -869,109 +853,5 @@ TEST_F(BucketAutoTests, ShouldFailOnNegativeNumbersWhenGranularitySpecified) { AssertionException, 40260); } - -TEST_F(BucketAutoTests, RedactionWithoutOutputField) { - auto spec = fromjson(R"({ - $bucketAuto: { - groupBy: '$_id', - buckets: 5, - granularity: "R5" - } - })"); - auto docSource = DocumentSourceBucketAuto::createFromBson(spec.firstElement(), getExpCtx()); - - ASSERT_BSONOBJ_EQ_AUTO( // NOLINT - R"({ - "$bucketAuto": { - "groupBy": "$HASH<_id>", - "buckets": "?number", - "granularity": "?string", - "output": { - "HASH<count>": { - "$sum": "?number" - } - } - } - })", - redact(*docSource)); -} - -TEST_F(BucketAutoTests, RedactionWithOutputField) { - auto spec = fromjson(R"({ - $bucketAuto: { - groupBy: '$year', - buckets: 3, - output: { - count: { $sum: 1 }, - years: { $push: '$year' } - } - }})"); - auto docSource = DocumentSourceBucketAuto::createFromBson(spec.firstElement(), getExpCtx()); - - ASSERT_BSONOBJ_EQ_AUTO( // NOLINT - R"({ - "$bucketAuto": { - "groupBy": "$HASH<year>", - "buckets": "?number", - "output": { - "HASH<count>": { - "$sum": "?number" - }, - "HASH<years>": { - "$push": "$HASH<year>" - } - } - } - })", - redact(*docSource)); -} - -TEST_F(BucketAutoTests, QueryShapeReParseSerializedStage) { - auto expCtx = getExpCtx(); - auto spec = fromjson(R"({ - $bucketAuto: { - groupBy: '$year', - buckets: 3, - granularity: "E192", - output: { - count: { $sum: 1 }, - years: { $push: '$year' } - } - }})"); - - auto docSource = DocumentSourceBucketAuto::createFromBson(spec.firstElement(), expCtx); - auto opts = SerializationOptions{LiteralSerializationPolicy::kToRepresentativeParseableValue}; - std::vector<Value> serialized; - docSource->serializeToArray(serialized, opts); - auto serializedDocSource = serialized[0].getDocument().toBson(); - ASSERT_BSONOBJ_EQ_AUTO( // NOLINT - R"({ - "$bucketAuto": { - "groupBy": "$year", - "buckets": 1, - "granularity": "R5", - "output": { - "count": { - "$sum": { - "$const":1 - } - }, - "years": { - "$push": "$year" - } - } - } - })", - serializedDocSource); - auto docSourceFromQueryShape = - DocumentSourceBucketAuto::createFromBson(serializedDocSource.firstElement(), expCtx); - - vector<Value> newSerialization; - docSourceFromQueryShape->serializeToArray(newSerialization, opts); - auto newSerializedDocSource = newSerialization[0].getDocument().toBson(); - ASSERT_BSONOBJ_EQ(serializedDocSource, newSerializedDocSource); -} - - } // namespace } // namespace mongo |
