summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_bucket_auto_test.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
commit4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch)
tree1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/db/pipeline/document_source_bucket_auto_test.cpp
parentaa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff)
parent8f0827553e09872941945a093b647a4211a9db7f (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.cpp126
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