diff options
author | Benety Goh <benety@mongodb.com> | 2016-06-17 14:31:49 -0400 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2016-06-20 15:38:07 -0400 |
commit | eaf507a65787759935e786a15ea58efb91fc004b (patch) | |
tree | 2138c56d626be859677918cfe9ab1446ab1490bb /src/mongo/db/repl/storage_interface_mock.h | |
parent | 66b4268b58f94de74ea0f464ba4bd1037fa43efb (diff) | |
download | mongo-eaf507a65787759935e786a15ea58efb91fc004b.tar.gz |
SERVER-24490 oplog buffer collection should use storage interface
Diffstat (limited to 'src/mongo/db/repl/storage_interface_mock.h')
-rw-r--r-- | src/mongo/db/repl/storage_interface_mock.h | 95 |
1 files changed, 79 insertions, 16 deletions
diff --git a/src/mongo/db/repl/storage_interface_mock.h b/src/mongo/db/repl/storage_interface_mock.h index 143d5d367cd..b25d91f8978 100644 --- a/src/mongo/db/repl/storage_interface_mock.h +++ b/src/mongo/db/repl/storage_interface_mock.h @@ -87,6 +87,33 @@ class StorageInterfaceMock : public StorageInterface { MONGO_DISALLOW_COPYING(StorageInterfaceMock); public: + // Used for testing. + + using CreateCollectionForBulkFn = + stdx::function<StatusWith<std::unique_ptr<CollectionBulkLoader>>( + const NamespaceString& nss, + const CollectionOptions& options, + const BSONObj idIndexSpec, + const std::vector<BSONObj>& secondaryIndexSpecs)>; + using InsertDocumentFn = stdx::function<Status( + OperationContext* txn, const NamespaceString& nss, const BSONObj& doc)>; + using InsertDocumentsFn = stdx::function<Status( + OperationContext* txn, const NamespaceString& nss, const std::vector<BSONObj>& docs)>; + using DropUserDatabasesFn = stdx::function<Status(OperationContext* txn)>; + using CreateOplogFn = stdx::function<Status(OperationContext* txn, const NamespaceString& nss)>; + using CreateCollectionFn = stdx::function<Status( + OperationContext* txn, const NamespaceString& nss, const CollectionOptions& options)>; + using DropCollectionFn = + stdx::function<Status(OperationContext* txn, const NamespaceString& nss)>; + using FindOneFn = stdx::function<StatusWith<BSONObj>(OperationContext* txn, + const NamespaceString& nss, + const BSONObj& indexKeyPattern, + ScanDirection scanDirection)>; + using DeleteOneFn = stdx::function<StatusWith<BSONObj>(OperationContext* txn, + const NamespaceString& nss, + const BSONObj& indexKeyPattern, + ScanDirection scanDirection)>; + StorageInterfaceMock() = default; void startup() override; @@ -113,7 +140,7 @@ public: const CollectionOptions& options, const BSONObj idIndexSpec, const std::vector<BSONObj>& secondaryIndexSpecs) override { - return createCollectionFn(nss, options, idIndexSpec, secondaryIndexSpecs); + return createCollectionForBulkFn(nss, options, idIndexSpec, secondaryIndexSpecs); }; Status insertDocument(OperationContext* txn, @@ -122,10 +149,10 @@ public: return insertDocumentFn(txn, nss, doc); }; - StatusWith<OpTime> insertOplogDocuments(OperationContext* txn, - const NamespaceString& nss, - const std::vector<BSONObj>& ops) override { - return insertOplogDocumentsFn(txn, nss, ops); + Status insertDocuments(OperationContext* txn, + const NamespaceString& nss, + const std::vector<BSONObj>& docs) override { + return insertDocumentsFn(txn, nss, docs); } Status dropReplicatedDatabases(OperationContext* txn) override { @@ -136,31 +163,51 @@ public: return createOplogFn(txn, nss); }; + Status createCollection(OperationContext* txn, + const NamespaceString& nss, + const CollectionOptions& options) override { + return createCollFn(txn, nss, options); + } + Status dropCollection(OperationContext* txn, const NamespaceString& nss) override { return dropCollFn(txn, nss); }; + StatusWith<BSONObj> findOne(OperationContext* txn, + const NamespaceString& nss, + const BSONObj& indexKeyPattern, + ScanDirection scanDirection) override { + return findOneFn(txn, nss, indexKeyPattern, scanDirection); + } + + StatusWith<BSONObj> deleteOne(OperationContext* txn, + const NamespaceString& nss, + const BSONObj& indexKeyPattern, + ScanDirection scanDirection) override { + return deleteOneFn(txn, nss, indexKeyPattern, scanDirection); + } + Status isAdminDbValid(OperationContext* txn) override { return Status::OK(); }; // Testing functions. - CreateCollectionFn createCollectionFn = [](const NamespaceString& nss, - const CollectionOptions& options, - const BSONObj idIndexSpec, - const std::vector<BSONObj>& secondaryIndexSpecs) - -> StatusWith<std::unique_ptr<CollectionBulkLoader>> { - return Status{ErrorCodes::IllegalOperation, "CreateCollectionFn not implemented."}; - }; + CreateCollectionForBulkFn createCollectionForBulkFn = + [](const NamespaceString& nss, + const CollectionOptions& options, + const BSONObj idIndexSpec, + const std::vector<BSONObj>& + secondaryIndexSpecs) -> StatusWith<std::unique_ptr<CollectionBulkLoader>> { + return Status{ErrorCodes::IllegalOperation, "CreateCollectionForBulkFn not implemented."}; + }; InsertDocumentFn insertDocumentFn = [](OperationContext* txn, const NamespaceString& nss, const BSONObj& doc) { return Status{ErrorCodes::IllegalOperation, "InsertDocumentFn not implemented."}; }; - InsertOplogDocumentsFn insertOplogDocumentsFn = - [](OperationContext* txn, const NamespaceString& nss, const std::vector<BSONObj>& ops) { - return StatusWith<OpTime>( - Status{ErrorCodes::IllegalOperation, "InsertOplogDocumentsFn not implemented."}); + InsertDocumentsFn insertDocumentsFn = + [](OperationContext* txn, const NamespaceString& nss, const std::vector<BSONObj>& docs) { + return Status{ErrorCodes::IllegalOperation, "InsertDocumentsFn not implemented."}; }; DropUserDatabasesFn dropUserDBsFn = [](OperationContext* txn) { return Status{ErrorCodes::IllegalOperation, "DropUserDatabasesFn not implemented."}; @@ -168,9 +215,25 @@ public: CreateOplogFn createOplogFn = [](OperationContext* txn, const NamespaceString& nss) { return Status{ErrorCodes::IllegalOperation, "CreateOplogFn not implemented."}; }; + CreateCollectionFn createCollFn = + [](OperationContext* txn, const NamespaceString& nss, const CollectionOptions& options) { + return Status{ErrorCodes::IllegalOperation, "CreateCollectionFn not implemented."}; + }; DropCollectionFn dropCollFn = [](OperationContext* txn, const NamespaceString& nss) { return Status{ErrorCodes::IllegalOperation, "DropCollectionFn not implemented."}; }; + FindOneFn findOneFn = [](OperationContext* txn, + const NamespaceString& nss, + const BSONObj& indexKeyPattern, + ScanDirection scanDirection) { + return Status{ErrorCodes::IllegalOperation, "FindOneFn not implemented."}; + }; + DeleteOneFn deleteOneFn = [](OperationContext* txn, + const NamespaceString& nss, + const BSONObj& indexKeyPattern, + ScanDirection scanDirection) { + return Status{ErrorCodes::IllegalOperation, "DeleteOneFn not implemented."}; + }; private: mutable stdx::mutex _initialSyncFlagMutex; |