summaryrefslogtreecommitdiff
path: root/src/mongo/dbtests/mock/mock_dbclient_connection.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/dbtests/mock/mock_dbclient_connection.h')
-rw-r--r--src/mongo/dbtests/mock/mock_dbclient_connection.h199
1 files changed, 103 insertions, 96 deletions
diff --git a/src/mongo/dbtests/mock/mock_dbclient_connection.h b/src/mongo/dbtests/mock/mock_dbclient_connection.h
index 7cb02f9636e..3572e33b11b 100644
--- a/src/mongo/dbtests/mock/mock_dbclient_connection.h
+++ b/src/mongo/dbtests/mock/mock_dbclient_connection.h
@@ -34,103 +34,110 @@
#include "mongo/dbtests/mock/mock_remote_db_server.h"
namespace mongo {
+/**
+ * A simple class for mocking mongo::DBClientConnection.
+ *
+ * Also check out sample usage in dbtests/mock_dbclient_conn_test.cpp
+ */
+class MockDBClientConnection : public mongo::DBClientConnection {
+public:
/**
- * A simple class for mocking mongo::DBClientConnection.
+ * Create a mock connection to a mock server.
*
- * Also check out sample usage in dbtests/mock_dbclient_conn_test.cpp
+ * @param remoteServer the remote server to connect to. The caller is
+ * responsible for making sure that the life of remoteServer is
+ * longer than this connection.
+ * @param autoReconnect will automatically re-establish connection the
+ * next time an operation is requested when the last operation caused
+ * this connection to fall into a failed state.
*/
- class MockDBClientConnection : public mongo::DBClientConnection {
- public:
- /**
- * Create a mock connection to a mock server.
- *
- * @param remoteServer the remote server to connect to. The caller is
- * responsible for making sure that the life of remoteServer is
- * longer than this connection.
- * @param autoReconnect will automatically re-establish connection the
- * next time an operation is requested when the last operation caused
- * this connection to fall into a failed state.
- */
- MockDBClientConnection(MockRemoteDBServer* remoteServer, bool autoReconnect = false);
- virtual ~MockDBClientConnection();
-
- //
- // DBClientBase methods
- //
-
- bool connect(const char* hostName, std::string& errmsg);
-
- inline bool connect(const HostAndPort& host, std::string& errmsg) {
- return connect(host.toString().c_str(), errmsg);
- }
-
- bool runCommand(const std::string& dbname, const mongo::BSONObj& cmdObj,
- mongo::BSONObj &info, int options = 0);
-
- rpc::UniqueReply runCommandWithMetadata(StringData database,
- StringData command,
- const BSONObj& metadata,
- const BSONObj& commandArgs) final;
-
- std::unique_ptr<mongo::DBClientCursor> query(const std::string &ns,
- mongo::Query query = mongo::Query(),
- int nToReturn = 0,
- int nToSkip = 0,
- const mongo::BSONObj* fieldsToReturn = 0,
- int queryOptions = 0,
- int batchSize = 0);
-
- uint64_t getSockCreationMicroSec() const;
-
- virtual void insert(const std::string& ns, BSONObj obj, int flags = 0);
-
- virtual void insert(const std::string& ns, const std::vector<BSONObj>& objList, int flags = 0);
-
- virtual void remove(const std::string& ns, Query query, bool justOne = false);
-
- virtual void remove(const std::string& ns, Query query, int flags = 0);
-
- //
- // Getters
- //
-
- mongo::ConnectionString::ConnectionType type() const;
- bool isFailed() const;
- double getSoTimeout() const;
- std::string getServerAddress() const;
- std::string toString() const;
-
- //
- // Unsupported methods (defined to get rid of virtual function was hidden error)
- //
- unsigned long long query(stdx::function<void(const mongo::BSONObj&)> f,
- const std::string& ns, mongo::Query query,
- const mongo::BSONObj* fieldsToReturn = 0, int queryOptions = 0);
-
- unsigned long long query(stdx::function<void(mongo::DBClientCursorBatchIterator&)> f,
- const std::string& ns, mongo::Query query,
- const mongo::BSONObj* fieldsToReturn = 0,
- int queryOptions = 0);
-
- //
- // Unsupported methods (these are pure virtuals in the base class)
- //
-
- void killCursor(long long cursorID);
- bool callRead(mongo::Message& toSend , mongo::Message& response);
- bool call(mongo::Message& toSend, mongo::Message& response, bool assertOk = true,
- std::string* actualServer = 0);
- void say(mongo::Message& toSend, bool isRetry = false, std::string* actualServer = 0);
- void sayPiggyBack(mongo::Message& toSend);
- bool lazySupported() const;
-
- private:
- void checkConnection();
-
- MockRemoteDBServer::InstanceID _remoteServerInstanceID;
- MockRemoteDBServer* _remoteServer;
- bool _isFailed;
- uint64_t _sockCreationTime;
- bool _autoReconnect;
- };
+ MockDBClientConnection(MockRemoteDBServer* remoteServer, bool autoReconnect = false);
+ virtual ~MockDBClientConnection();
+
+ //
+ // DBClientBase methods
+ //
+
+ bool connect(const char* hostName, std::string& errmsg);
+
+ inline bool connect(const HostAndPort& host, std::string& errmsg) {
+ return connect(host.toString().c_str(), errmsg);
+ }
+
+ bool runCommand(const std::string& dbname,
+ const mongo::BSONObj& cmdObj,
+ mongo::BSONObj& info,
+ int options = 0);
+
+ rpc::UniqueReply runCommandWithMetadata(StringData database,
+ StringData command,
+ const BSONObj& metadata,
+ const BSONObj& commandArgs) final;
+
+ std::unique_ptr<mongo::DBClientCursor> query(const std::string& ns,
+ mongo::Query query = mongo::Query(),
+ int nToReturn = 0,
+ int nToSkip = 0,
+ const mongo::BSONObj* fieldsToReturn = 0,
+ int queryOptions = 0,
+ int batchSize = 0);
+
+ uint64_t getSockCreationMicroSec() const;
+
+ virtual void insert(const std::string& ns, BSONObj obj, int flags = 0);
+
+ virtual void insert(const std::string& ns, const std::vector<BSONObj>& objList, int flags = 0);
+
+ virtual void remove(const std::string& ns, Query query, bool justOne = false);
+
+ virtual void remove(const std::string& ns, Query query, int flags = 0);
+
+ //
+ // Getters
+ //
+
+ mongo::ConnectionString::ConnectionType type() const;
+ bool isFailed() const;
+ double getSoTimeout() const;
+ std::string getServerAddress() const;
+ std::string toString() const;
+
+ //
+ // Unsupported methods (defined to get rid of virtual function was hidden error)
+ //
+ unsigned long long query(stdx::function<void(const mongo::BSONObj&)> f,
+ const std::string& ns,
+ mongo::Query query,
+ const mongo::BSONObj* fieldsToReturn = 0,
+ int queryOptions = 0);
+
+ unsigned long long query(stdx::function<void(mongo::DBClientCursorBatchIterator&)> f,
+ const std::string& ns,
+ mongo::Query query,
+ const mongo::BSONObj* fieldsToReturn = 0,
+ int queryOptions = 0);
+
+ //
+ // Unsupported methods (these are pure virtuals in the base class)
+ //
+
+ void killCursor(long long cursorID);
+ bool callRead(mongo::Message& toSend, mongo::Message& response);
+ bool call(mongo::Message& toSend,
+ mongo::Message& response,
+ bool assertOk = true,
+ std::string* actualServer = 0);
+ void say(mongo::Message& toSend, bool isRetry = false, std::string* actualServer = 0);
+ void sayPiggyBack(mongo::Message& toSend);
+ bool lazySupported() const;
+
+private:
+ void checkConnection();
+
+ MockRemoteDBServer::InstanceID _remoteServerInstanceID;
+ MockRemoteDBServer* _remoteServer;
+ bool _isFailed;
+ uint64_t _sockCreationTime;
+ bool _autoReconnect;
+};
}