Esempio n. 1
0
        public void FromDocument_DocumentHasNoError_ReturnsNull()
        {
            var document = new SimoKeyValues();

            var errMsg = MongoDbErrorMessage.FromDocument(document);

            Assert.IsNull(errMsg);
        }
Esempio n. 2
0
        public void FromDocument_DocumentHasErrorWithoutMessage_ReturnsNonNullWithDefaultMessage()
        {
            var document = new SimoKeyValues {
                { "ok", 0.0 }
            };

            var errMsg = MongoDbErrorMessage.FromDocument(document);

            Assert.AreEqual(ExceptionMessages.MongoErrorMessage_Default, errMsg.Message);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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;
 }