summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_sequential_document_cache_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/document_source_sequential_document_cache_test.cpp')
-rw-r--r--src/mongo/db/pipeline/document_source_sequential_document_cache_test.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/mongo/db/pipeline/document_source_sequential_document_cache_test.cpp b/src/mongo/db/pipeline/document_source_sequential_document_cache_test.cpp
index d4480ca7c57..36b0f043faf 100644
--- a/src/mongo/db/pipeline/document_source_sequential_document_cache_test.cpp
+++ b/src/mongo/db/pipeline/document_source_sequential_document_cache_test.cpp
@@ -34,9 +34,11 @@
#include "mongo/bson/bsonmisc.h"
#include "mongo/bson/bsonobj.h"
#include "mongo/bson/json.h"
+#include "mongo/db/exec/document_value/document_value_test_util.h"
#include "mongo/db/pipeline/aggregation_context_fixture.h"
#include "mongo/db/pipeline/document_source_mock.h"
#include "mongo/db/pipeline/document_source_sequential_document_cache.h"
+#include "mongo/unittest/bson_test_util.h"
#include "mongo/unittest/unittest.h"
namespace mongo {
@@ -74,5 +76,27 @@ TEST_F(DocumentSourceSequentialDocumentCacheTest, ReturnsEOFAfterCacheExhausted)
ASSERT(documentCache->getNext().isEOF());
ASSERT(documentCache->getNext().isEOF());
}
+
+TEST_F(DocumentSourceSequentialDocumentCacheTest, Redaction) {
+ SequentialDocumentCache cache(kDefaultMaxCacheSize);
+ cache.add(DOC("_id" << 0));
+ cache.add(DOC("_id" << 1));
+ auto documentCache = DocumentSourceSequentialDocumentCache::create(getExpCtx(), &cache);
+ std::vector<Value> vals;
+
+ ASSERT_BSONOBJ_EQ_AUTO( // NOLINT
+ R"({"$sequentialCache":{"maxSizeBytes":"?number","status":"kBuilding"}})",
+ redact(*documentCache, true, ExplainOptions::Verbosity::kQueryPlanner));
+
+ cache.freeze();
+ ASSERT_BSONOBJ_EQ_AUTO( // NOLINT
+ R"({"$sequentialCache":{"maxSizeBytes":"?number","status":"kServing"}})",
+ redact(*documentCache, true, ExplainOptions::Verbosity::kQueryPlanner));
+
+ cache.abandon();
+ ASSERT_BSONOBJ_EQ_AUTO( // NOLINT
+ R"({"$sequentialCache":{"maxSizeBytes":"?number","status":"kAbandoned"}})",
+ redact(*documentCache, true, ExplainOptions::Verbosity::kQueryPlanner));
+}
} // namespace
} // namespace mongo