summaryrefslogtreecommitdiff
path: root/src/mongo/dbtests/cursor_manager_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/dbtests/cursor_manager_test.cpp')
-rw-r--r--src/mongo/dbtests/cursor_manager_test.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/mongo/dbtests/cursor_manager_test.cpp b/src/mongo/dbtests/cursor_manager_test.cpp
index 1cc8ee1f535..f71e45fe2ec 100644
--- a/src/mongo/dbtests/cursor_manager_test.cpp
+++ b/src/mongo/dbtests/cursor_manager_test.cpp
@@ -753,5 +753,44 @@ TEST_F(CursorManagerTestCustomOpCtx, CursorsMarkedAsKilledAreReturnedForOpKeyLoo
auto cursors = useCursorManager()->getCursorsForOpKeys({opKey});
ASSERT_EQ(cursors.size(), size_t(1));
}
+
+TEST_F(CursorManagerTestCustomOpCtx,
+ GetCursorIdsForNamespaceReturnsSingleEntryForMatchingNamespace) {
+ auto opCtx = _queryServiceContext->makeOperationContext();
+ auto pinned = makeCursor(opCtx.get());
+ auto cursorId = pinned.getCursor()->cursorid();
+ auto cursorsForNamespace = useCursorManager()->getCursorIdsForNamespace(kTestNss);
+ ASSERT_EQUALS(cursorsForNamespace.size(), 1ull);
+ ASSERT_EQUALS(cursorsForNamespace[0], cursorId);
+}
+
+TEST_F(CursorManagerTestCustomOpCtx,
+ GetCursorIdsForNamespaceReturnsMultipleEntriesForMatchingNamespace) {
+ auto opCtx = _queryServiceContext->makeOperationContext();
+ auto pinned1 = makeCursor(opCtx.get());
+ auto pinned2 = makeCursor(opCtx.get());
+ auto cursorId1 = pinned1.getCursor()->cursorid();
+ auto cursorId2 = pinned2.getCursor()->cursorid();
+ auto cursorsForNamespace = useCursorManager()->getCursorIdsForNamespace(kTestNss);
+ ASSERT_EQUALS(cursorsForNamespace.size(), 2ull);
+ // The results for cursorsForNamespace won't necessarily be the same as the order of insertion.
+ std::set<CursorId> cursorsForNamespaceSet(cursorsForNamespace.begin(),
+ cursorsForNamespace.end());
+
+ ASSERT_EQUALS(cursorsForNamespaceSet.count(cursorId1), 1ull);
+ ASSERT_EQUALS(cursorsForNamespaceSet.count(cursorId2), 1ull);
+}
+
+TEST_F(CursorManagerTestCustomOpCtx,
+ GetCursorIdsForNamespaceDoesNotReturnEntriesForNonMatchingNamespace) {
+ auto opCtx = _queryServiceContext->makeOperationContext();
+ // Add a cursor for kTestNss.
+ auto pinned = makeCursor(opCtx.get());
+ // Get cursors for a different NamespaceString.
+ auto cursorsForNamespace =
+ useCursorManager()->getCursorIdsForNamespace(NamespaceString("somerandom.nss"));
+ ASSERT_EQUALS(cursorsForNamespace.size(), 0ull);
+}
+
} // namespace
} // namespace mongo