Exemplo n.º 1
0
        // methods
        private BsonDocument CreateGetLastErrorCommand()
        {
            var command = _writeConcern.ToBsonDocument();

            command.InsertAt(0, new BsonElement("getLastError", 1));
            return(command);
        }
Exemplo n.º 2
0
        public static QueryMessage BuildGetLastError(
            WriteConcern writeConcern,
            int requestId = 0,
            DatabaseNamespace databaseNamespace = null)
        {
            var command = writeConcern.ToBsonDocument();

            command.InsertAt(0, new BsonElement("getLastError", 1));
            return(BuildCommand(command, requestId, databaseNamespace));
        }
Exemplo n.º 3
0
        private void ValidateWriteConcern(BsonDocument definition)
        {
            Exception    parseException = null;
            WriteConcern writeConcern   = null;

            try
            {
                writeConcern = WriteConcern.FromBsonDocument(MassageWriteConcernDocument((BsonDocument)definition["writeConcern"]));
            }
            catch (Exception ex)
            {
                parseException = ex;
            }

            if (parseException == null)
            {
                if (!(bool)definition["valid"])
                {
                    throw new AssertionException($"Should be invalid: {definition["writeConcern"]}.");
                }

                var expectedDocument = (BsonDocument)definition["writeConcernDocument"];
                var document         = writeConcern.ToBsonDocument();
                document.Should().Be(expectedDocument);

                writeConcern.IsServerDefault.Should().Be((bool)definition["isServerDefault"]);
                writeConcern.IsAcknowledged.Should().Be((bool)definition["isAcknowledged"]);
            }
            else
            {
                if ((bool)definition["valid"])
                {
                    throw new AssertionException($"Should be valid: {definition["writeConcern"]}.");
                }
            }
        }
        public void ToBsonDocument_should_return_expected_result(object w, int? wTimeoutSeconds, bool? fsync, bool? journal, string expectedResult)
        {
            var wValue = ToWValue(w);
            var wTimeout = ToWTimeout(wTimeoutSeconds);
            var subject = new WriteConcern(wValue, wTimeout, fsync, journal);

            var result = subject.ToBsonDocument();

            result.Should().Be(expectedResult);
        }
        public void CreateCommand_should_return_expected_result_when_WriteConcern_is_set(
            [Values(1, 2)]
            int w,
            [Values(false, true)]
            bool isWriteConcernSupported)
        {
            var requests = new[] { new CreateIndexRequest(new BsonDocument("x", 1)) };
            var writeConcern = new WriteConcern(w);
            var subject = new CreateIndexesUsingCommandOperation(_collectionNamespace, requests, _messageEncoderSettings)
            {
                WriteConcern = writeConcern
            };
            var serverVersion = Feature.CommandsThatWriteAcceptWriteConcern.SupportedOrNotSupportedVersion(isWriteConcernSupported);

            var result = subject.CreateCommand(serverVersion);

            var expectedResult = new BsonDocument
            {
                { "createIndexes", _collectionNamespace.CollectionName },
                { "indexes", new BsonArray { requests[0].CreateIndexDocument(null) } },
                { "writeConcern", () => writeConcern.ToBsonDocument(), isWriteConcernSupported }
            };
            result.Should().Be(expectedResult);
        }