public void FromDocument_DocumentHasNoError_ReturnsNull() { var document = new SimoKeyValues(); var errMsg = MongoDbErrorMessage.FromDocument(document); Assert.IsNull(errMsg); }
public void FromDocument_DocumentHasErrorWithoutMessage_ReturnsNonNullWithDefaultMessage() { var document = new SimoKeyValues { { "ok", 0.0 } }; var errMsg = MongoDbErrorMessage.FromDocument(document); Assert.AreEqual(ExceptionMessages.MongoErrorMessage_Default, errMsg.Message); }
public void FromDocument_DocumentHasErrorWithMessage_ReturnsNonNullWithMessage() { var document = new SimoKeyValues { { "ok", 0.0 }, { "errmsg", "Dummy" } }; var errMsg = MongoDbErrorMessage.FromDocument(document); Assert.AreEqual("Dummy", errMsg.Message); }
/// <summary> /// Overrides, since there is no need to extract more documents /// via cursor as a normal response command. /// </summary> /// <param name="responseStreamReader"></param> protected override void OnReadResponse(ResponseStreamReader responseStreamReader) { var response = responseStreamReader.Read <SimoKeyValues>(); var document = response.ReturnedDocuments[0]; var commandWasOk = document.GetDouble("ok") == 1.0; if (commandWasOk) { return; } var errMsg = MongoDbErrorMessage.FromDocument(document); if (errMsg == null) { return; } throw new SimoCommandException(ExceptionMessages.DatabaseCommand_CommandWasNotOk, errMsg); }
protected override void OnRequestSent() { var dbName = SimoHelper.GetDatabaseName(FullCollectionName); var cmd = new GetLastErrorCommand(Connection) { DatabaseName = dbName }; cmd.Execute(); if (cmd.Response.IsEmpty) { return; } var errMsg = MongoDbErrorMessage.FromDocument(cmd.Response.Documents[0]); if (errMsg == null) { return; } throw new SimoCommandException(ExceptionMessages.DatabaseCommand_CommandWasNotOk, errMsg); }
public SimoCommandException(string message, MongoDbErrorMessage mongoDbDbMessage = null) : base(message) { MongoDbDbMessage = mongoDbDbMessage ?? MongoDbErrorMessage.Blank; }