diff options
Diffstat (limited to 'src/mongo/db/views/resolved_view_test.cpp')
-rw-r--r-- | src/mongo/db/views/resolved_view_test.cpp | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/src/mongo/db/views/resolved_view_test.cpp b/src/mongo/db/views/resolved_view_test.cpp index a3a60d9e102..0a795870986 100644 --- a/src/mongo/db/views/resolved_view_test.cpp +++ b/src/mongo/db/views/resolved_view_test.cpp @@ -37,7 +37,7 @@ #include "mongo/bson/json.h" #include "mongo/db/exec/document_value/document.h" #include "mongo/db/namespace_string.h" -#include "mongo/db/pipeline/aggregation_request.h" +#include "mongo/db/pipeline/aggregation_request_helper.h" #include "mongo/db/views/resolved_view.h" #include "mongo/rpc/get_status_from_command_result.h" #include "mongo/unittest/unittest.h" @@ -48,36 +48,38 @@ namespace { const NamespaceString viewNss("testdb.testview"); const NamespaceString backingNss("testdb.testcoll"); const std::vector<BSONObj> emptyPipeline; -const BSONObj kDefaultCursorOptionDocument = - BSON(AggregationRequest::kBatchSizeName << AggregationRequest::kDefaultBatchSize); +const BSONObj kDefaultCursorOptionDocument = BSON(aggregation_request_helper::kBatchSizeField + << aggregation_request_helper::kDefaultBatchSize); const BSONObj kSimpleCollation; TEST(ResolvedViewTest, ExpandingAggRequestWithEmptyPipelineOnNoOpViewYieldsEmptyPipeline) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest requestOnView{viewNss, emptyPipeline}; + AggregateCommand requestOnView{viewNss, emptyPipeline}; auto result = resolvedView.asExpandedViewAggregation(requestOnView); - BSONObj expected = BSON("aggregate" << backingNss.coll() << "pipeline" << BSONArray() - << "cursor" << kDefaultCursorOptionDocument); - ASSERT_BSONOBJ_EQ(result.serializeToCommandObj().toBson(), expected); + BSONObj expected = + BSON("aggregate" << backingNss.coll() << "pipeline" << BSONArray() << "cursor" + << kDefaultCursorOptionDocument << "collation" << BSONObj()); + ASSERT_BSONOBJ_EQ(aggregation_request_helper::serializeToCommandObj(result), expected); } TEST(ResolvedViewTest, ExpandingAggRequestWithNonemptyPipelineAppendsToViewPipeline) { std::vector<BSONObj> viewPipeline{BSON("skip" << 7)}; const ResolvedView resolvedView{backingNss, viewPipeline, kSimpleCollation}; - AggregationRequest requestOnView{viewNss, std::vector<BSONObj>{BSON("limit" << 3)}}; + AggregateCommand requestOnView{viewNss, std::vector<BSONObj>{BSON("limit" << 3)}}; auto result = resolvedView.asExpandedViewAggregation(requestOnView); - BSONObj expected = BSON("aggregate" << backingNss.coll() << "pipeline" - << BSON_ARRAY(BSON("skip" << 7) << BSON("limit" << 3)) - << "cursor" << kDefaultCursorOptionDocument); - ASSERT_BSONOBJ_EQ(result.serializeToCommandObj().toBson(), expected); + BSONObj expected = + BSON("aggregate" << backingNss.coll() << "pipeline" + << BSON_ARRAY(BSON("skip" << 7) << BSON("limit" << 3)) << "cursor" + << kDefaultCursorOptionDocument << "collation" << BSONObj()); + ASSERT_BSONOBJ_EQ(aggregation_request_helper::serializeToCommandObj(result), expected); } TEST(ResolvedViewTest, ExpandingAggRequestPreservesExplain) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest aggRequest{viewNss, {}}; + AggregateCommand aggRequest{viewNss, {}}; aggRequest.setExplain(ExplainOptions::Verbosity::kExecStats); auto result = resolvedView.asExpandedViewAggregation(aggRequest); @@ -87,74 +89,74 @@ TEST(ResolvedViewTest, ExpandingAggRequestPreservesExplain) { TEST(ResolvedViewTest, ExpandingAggRequestWithCursorAndExplainOnlyPreservesExplain) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest aggRequest{viewNss, {}}; + AggregateCommand aggRequest{viewNss, {}}; aggRequest.setBatchSize(10); aggRequest.setExplain(ExplainOptions::Verbosity::kExecStats); auto result = resolvedView.asExpandedViewAggregation(aggRequest); ASSERT(result.getExplain()); ASSERT(*result.getExplain() == ExplainOptions::Verbosity::kExecStats); - ASSERT_EQ(result.getBatchSize(), AggregationRequest::kDefaultBatchSize); + ASSERT_EQ(result.getBatchSize(), aggregation_request_helper::kDefaultBatchSize); } TEST(ResolvedViewTest, ExpandingAggRequestPreservesBypassDocumentValidation) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest aggRequest(viewNss, {}); + AggregateCommand aggRequest(viewNss, {}); aggRequest.setBypassDocumentValidation(true); auto result = resolvedView.asExpandedViewAggregation(aggRequest); - ASSERT_TRUE(result.shouldBypassDocumentValidation()); + ASSERT_TRUE(result.getBypassDocumentValidation().value_or(false)); } TEST(ResolvedViewTest, ExpandingAggRequestPreservesAllowDiskUse) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest aggRequest(viewNss, {}); + AggregateCommand aggRequest(viewNss, {}); aggRequest.setAllowDiskUse(true); auto result = resolvedView.asExpandedViewAggregation(aggRequest); - ASSERT_TRUE(result.shouldAllowDiskUse()); + ASSERT_TRUE(result.getAllowDiskUse()); } TEST(ResolvedViewTest, ExpandingAggRequestPreservesHint) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest aggRequest(viewNss, {}); + AggregateCommand aggRequest(viewNss, {}); aggRequest.setHint(BSON("a" << 1)); auto result = resolvedView.asExpandedViewAggregation(aggRequest); - ASSERT_BSONOBJ_EQ(result.getHint(), BSON("a" << 1)); + ASSERT_BSONOBJ_EQ(result.getHint().value_or(BSONObj()), BSON("a" << 1)); } TEST(ResolvedViewTest, ExpandingAggRequestPreservesReadPreference) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest aggRequest(viewNss, {}); + AggregateCommand aggRequest(viewNss, {}); aggRequest.setUnwrappedReadPref(BSON("$readPreference" << "nearest")); auto result = resolvedView.asExpandedViewAggregation(aggRequest); - ASSERT_BSONOBJ_EQ(result.getUnwrappedReadPref(), + ASSERT_BSONOBJ_EQ(result.getUnwrappedReadPref().value_or(BSONObj()), BSON("$readPreference" << "nearest")); } TEST(ResolvedViewTest, ExpandingAggRequestPreservesReadConcern) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest aggRequest(viewNss, {}); + AggregateCommand aggRequest(viewNss, {}); aggRequest.setReadConcern(BSON("level" << "linearizable")); auto result = resolvedView.asExpandedViewAggregation(aggRequest); - ASSERT_BSONOBJ_EQ(result.getReadConcern(), + ASSERT_BSONOBJ_EQ(result.getReadConcern().value_or(BSONObj()), BSON("level" << "linearizable")); } TEST(ResolvedViewTest, ExpandingAggRequestPreservesMaxTimeMS) { const ResolvedView resolvedView{backingNss, emptyPipeline, kSimpleCollation}; - AggregationRequest aggRequest(viewNss, {}); + AggregateCommand aggRequest(viewNss, {}); aggRequest.setMaxTimeMS(100u); auto result = resolvedView.asExpandedViewAggregation(aggRequest); - ASSERT_EQ(result.getMaxTimeMS(), 100u); + ASSERT_EQ(result.getMaxTimeMS().value_or(0), 100u); } TEST(ResolvedViewTest, ExpandingAggRequestPreservesDefaultCollationOfView) { @@ -165,10 +167,10 @@ TEST(ResolvedViewTest, ExpandingAggRequestPreservesDefaultCollationOfView) { ASSERT_BSONOBJ_EQ(resolvedView.getDefaultCollation(), BSON("locale" << "fr_CA")); - AggregationRequest aggRequest(viewNss, {}); + AggregateCommand aggRequest(viewNss, {}); auto result = resolvedView.asExpandedViewAggregation(aggRequest); - ASSERT_BSONOBJ_EQ(result.getCollation(), + ASSERT_BSONOBJ_EQ(result.getCollation().value_or(BSONObj()), BSON("locale" << "fr_CA")); } |