void NetworkInterfaceASIOIntegrationFixture::assertCommandFailsOnClient( StringData db, const BSONObj& cmd, ErrorCodes::Error reason, Milliseconds timeoutMillis) { RemoteCommandRequest request{ fixture().getServers()[0], db.toString(), cmd, BSONObj(), nullptr, timeoutMillis}; auto res = runCommandSync(request); ASSERT_EQ(reason, res.status.code()); }
void NetworkInterfaceIntegrationFixture::assertCommandOK(StringData db, const BSONObj& cmd, Milliseconds timeoutMillis) { RemoteCommandRequest request{ fixture().getServers()[0], db.toString(), cmd, BSONObj(), nullptr, timeoutMillis}; auto res = runCommandSync(request); ASSERT_OK(res.status); ASSERT_OK(getStatusFromCommandResult(res.data)); ASSERT(!res.data["writeErrors"]); }
void NetworkInterfaceIntegrationFixture::assertCommandFailsOnServer(StringData db, const BSONObj& cmd, ErrorCodes::Error reason, Milliseconds timeoutMillis) { RemoteCommandRequest request{ fixture().getServers()[0], db.toString(), cmd, BSONObj(), nullptr, timeoutMillis}; auto res = runCommandSync(request); ASSERT_OK(res.status); auto serverStatus = getStatusFromCommandResult(res.data); ASSERT_EQ(reason, serverStatus); }
void NetworkInterfaceIntegrationFixture::assertWriteError(StringData db, const BSONObj& cmd, ErrorCodes::Error reason, Milliseconds timeoutMillis) { RemoteCommandRequest request{ fixture().getServers()[0], db.toString(), cmd, BSONObj(), nullptr, timeoutMillis}; auto res = runCommandSync(request); ASSERT_OK(res.status); ASSERT_OK(getStatusFromCommandResult(res.data)); ASSERT(res.data["writeErrors"]); auto firstWriteError = res.data["writeErrors"].embeddedObject().firstElement().embeddedObject(); Status writeErrorStatus(ErrorCodes::Error(firstWriteError.getIntField("code")), firstWriteError.getStringField("errmsg")); ASSERT_EQ(reason, writeErrorStatus); }