summaryrefslogtreecommitdiff
path: root/src/mongo/db/views/resolved_view_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/views/resolved_view_test.cpp')
-rw-r--r--src/mongo/db/views/resolved_view_test.cpp60
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"));
}