diff options
author | Benety Goh <benety@mongodb.com> | 2017-04-19 00:03:27 -0400 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2017-04-19 16:13:22 -0400 |
commit | 2f7b34fc95a2b101344fd7ab1f51d97ecf02da46 (patch) | |
tree | baf12028740171d60299d9f37b835b80dd6da739 /src/mongo/db/repl/storage_interface_impl_test.cpp | |
parent | 6dfa595dda5e67f44daedccabf2ece86d6f0b52b (diff) | |
download | mongo-2f7b34fc95a2b101344fd7ab1f51d97ecf02da46.tar.gz |
SERVER-28211 add StorageInterface::deleteById()
Diffstat (limited to 'src/mongo/db/repl/storage_interface_impl_test.cpp')
-rw-r--r-- | src/mongo/db/repl/storage_interface_impl_test.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/mongo/db/repl/storage_interface_impl_test.cpp b/src/mongo/db/repl/storage_interface_impl_test.cpp index 68fde3bf366..7207eb5002f 100644 --- a/src/mongo/db/repl/storage_interface_impl_test.cpp +++ b/src/mongo/db/repl/storage_interface_impl_test.cpp @@ -1530,6 +1530,51 @@ TEST_F(StorageInterfaceImplTest, FindByIdReturnsDocumentWhenDocumentExists) { ASSERT_BSONOBJ_EQ(doc2, unittest::assertGet(storage.findById(opCtx, nss, doc2["_id"]))); } +TEST_F(StorageInterfaceImplTest, DeleteByIdReturnsNamespaceNotFoundWhenDatabaseDoesNotExist) { + auto opCtx = getOperationContext(); + StorageInterfaceImpl storage; + NamespaceString nss("nosuchdb.coll"); + auto doc = BSON("_id" << 0 << "x" << 0); + ASSERT_EQUALS(ErrorCodes::NamespaceNotFound, + storage.deleteById(opCtx, nss, doc["_id"]).getStatus()); +} + +TEST_F(StorageInterfaceImplTest, DeleteByIdReturnsNoSuchKeyWhenCollectionIsEmpty) { + auto opCtx = getOperationContext(); + StorageInterfaceImpl storage; + auto nss = makeNamespace(_agent); + ASSERT_OK(storage.createCollection(opCtx, nss, CollectionOptions())); + auto doc = BSON("_id" << 0 << "x" << 0); + ASSERT_EQUALS(ErrorCodes::NoSuchKey, storage.deleteById(opCtx, nss, doc["_id"]).getStatus()); + _assertDocumentsInCollectionEquals(opCtx, nss, {}); +} + +TEST_F(StorageInterfaceImplTest, DeleteByIdReturnsNoSuchKeyWhenDocumentIsNotFound) { + auto opCtx = getOperationContext(); + StorageInterfaceImpl storage; + auto nss = makeNamespace(_agent); + ASSERT_OK(storage.createCollection(opCtx, nss, CollectionOptions())); + auto doc1 = BSON("_id" << 0 << "x" << 0); + auto doc2 = BSON("_id" << 1 << "x" << 1); + auto doc3 = BSON("_id" << 2 << "x" << 2); + ASSERT_OK(storage.insertDocuments(opCtx, nss, {doc1, doc3})); + ASSERT_EQUALS(ErrorCodes::NoSuchKey, storage.deleteById(opCtx, nss, doc2["_id"]).getStatus()); + _assertDocumentsInCollectionEquals(opCtx, nss, {doc1, doc3}); +} + +TEST_F(StorageInterfaceImplTest, DeleteByIdReturnsDocumentWhenDocumentExists) { + auto opCtx = getOperationContext(); + StorageInterfaceImpl storage; + auto nss = makeNamespace(_agent); + ASSERT_OK(storage.createCollection(opCtx, nss, CollectionOptions())); + auto doc1 = BSON("_id" << 0 << "x" << 0); + auto doc2 = BSON("_id" << 1 << "x" << 1); + auto doc3 = BSON("_id" << 2 << "x" << 2); + ASSERT_OK(storage.insertDocuments(opCtx, nss, {doc1, doc2, doc3})); + ASSERT_BSONOBJ_EQ(doc2, unittest::assertGet(storage.deleteById(opCtx, nss, doc2["_id"]))); + _assertDocumentsInCollectionEquals(opCtx, nss, {doc1, doc3}); +} + TEST_F(StorageInterfaceImplTest, UpsertSingleDocumentReturnsNamespaceNotFoundWhenDatabaseDoesNotExist) { auto opCtx = getOperationContext(); |