public void CollectionNamespace_get_should_return_expected_result()
        {
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);

            var result = subject.CollectionNamespace;

            result.Should().BeSameAs(_collectionNamespace);
        }
        public void ExecyteAsync_should_throw_when_binding_is_null()
        {
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);

            Func <Task> action = () => subject.ExecuteAsync(null);

            action.ShouldThrow <ArgumentNullException>().And.ParamName.Should().Be("binding");
        }
예제 #3
0
 // constructors
 public Builder(RenameCollectionOperation other)
 {
     _collectionName    = other.CollectionName;
     _databaseName      = other.DatabaseName;
     _dropTarget        = other.DropTarget;
     _newCollectionName = other.NewCollectionName;
     _newDatabaseName   = other.NewDatabaseName;
 }
        public void constructor_should_initialize_subject()
        {
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);

            subject.CollectionNamespace.Should().BeSameAs(_collectionNamespace);
            subject.NewCollectionNamespace.Should().BeSameAs(_newCollectionNamespace);
            subject.MessageEncoderSettings.Should().BeSameAs(_messageEncoderSettings);
            subject.DropTarget.Should().NotHaveValue();
        }
        public void Execute_should_send_session_id_when_supported(
            [Values(false, true)] bool async)
        {
            RequireServer.Check();
            EnsureCollectionExists(_collectionNamespace, async);
            EnsureCollectionDoesNotExist(_newCollectionNamespace, async);
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);

            VerifySessionIdWasSentWhenSupported(subject, "renameCollection", async);
        }
        public void Execute_should_throw_when_binding_is_null(
            [Values(false, true)]
            bool async)
        {
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);

            Action action = () => ExecuteOperation(subject, null, async);

            action.ShouldThrow <ArgumentNullException>().And.ParamName.Should().Be("binding");
        }
        public void DropTarget_should_work(
            [Values(false, true)]
            bool dropTarget)
        {
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);

            subject.DropTarget = dropTarget;
            var result = subject.DropTarget;

            result.Should().Be(dropTarget);
        }
        public void Execute_should_return_expected_result(
            [Values(false, true)]
            bool async)
        {
            EnsureCollectionExists(_collectionNamespace, async);
            EnsureCollectionDoesNotExist(_newCollectionNamespace, async);
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);

            var result = ExecuteOperation(subject, async);

            result["ok"].ToBoolean().Should().BeTrue();
        }
        public void WriteConcern_get_and_set_should_work(
            [Values(null, 1, 2)]
            int?w)
        {
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);
            var value   = w.HasValue ? new WriteConcern(w.Value) : null;

            subject.WriteConcern = value;
            var result = subject.WriteConcern;

            result.Should().BeSameAs(value);
        }
        public void CreateCommand_should_return_expected_result()
        {
            var subject        = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);
            var expectedResult = new BsonDocument
            {
                { "renameCollection", _collectionNamespace.FullName },
                { "to", _newCollectionNamespace.FullName }
            };

            var result = subject.CreateCommand(null);

            result.Should().Be(expectedResult);
        }
        public async Task ExecuteAsync_should_return_expected_result()
        {
            using (var binding = SuiteConfiguration.GetReadWriteBinding())
            {
                var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings);
                EnsureCollectionExists(binding, _collectionNamespace);
                EnsureCollectionDoesNotExist(binding, _newCollectionNamespace);

                var result = await subject.ExecuteAsync(binding);

                result["ok"].ToBoolean().Should().BeTrue();
            }
        }
        public void Execute_should_return_expected_result_when_dropTarget_is_true_and_newCollectionNamespace_exists(
            [Values(false, true)]
            bool async)
        {
            EnsureCollectionExists(_collectionNamespace, async);
            EnsureCollectionExists(_newCollectionNamespace, async);
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings)
            {
                DropTarget = true
            };

            var result = ExecuteOperation(subject, async);

            result["ok"].ToBoolean().Should().BeTrue();
        }
        public async Task ExecuteAsync_should_return_expected_result_when_dropTarget_is_true_and_newCollectionNamespace_exists()
        {
            using (var binding = SuiteConfiguration.GetReadWriteBinding())
            {
                var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings)
                {
                    DropTarget = true
                };
                EnsureCollectionExists(binding, _collectionNamespace);
                EnsureCollectionExists(binding, _newCollectionNamespace);

                var result = await subject.ExecuteAsync(binding, CancellationToken.None);

                result["ok"].ToBoolean().Should().BeTrue();
            }
        }
        public void ExecuteAsync_should_throw_when_dropTarget_is_false_and_newCollectionNamespace_exists()
        {
            using (var binding = SuiteConfiguration.GetReadWriteBinding())
            {
                var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings)
                {
                    DropTarget = false
                };
                EnsureCollectionExists(binding, _collectionNamespace);
                EnsureCollectionExists(binding, _newCollectionNamespace);

                Func <Task> action = () => subject.ExecuteAsync(binding);

                action.ShouldThrow <MongoCommandException>();
            }
        }
        public void Execute_should_throw_when_a_write_concern_error_occurs(
            [Values(false, true)]
            bool async)
        {
            RequireServer.Check().Supports(Feature.CommandsThatWriteAcceptWriteConcern).ClusterType(ClusterType.ReplicaSet);
            EnsureCollectionExists(_collectionNamespace, async);
            EnsureCollectionDoesNotExist(_newCollectionNamespace, async);
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings)
            {
                WriteConcern = new WriteConcern(9)
            };

            var exception = Record.Exception(() => ExecuteOperation(subject, async));

            exception.Should().BeOfType <MongoWriteConcernException>();
        }
        public void Execute_should_throw_when_dropTarget_is_false_and_newCollectionNamespace_exists(
            [Values(false, true)]
            bool async)
        {
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings)
            {
                DropTarget = false
            };

            EnsureCollectionExists(_collectionNamespace, async);
            EnsureCollectionExists(_newCollectionNamespace, async);

            Action action = () => ExecuteOperation(subject, async);

            action.ShouldThrow <MongoCommandException>();
        }
        public void CreateCommand_should_return_expected_result_when_dropTarget_is_provided(
            [Values(false, true)]
            bool dropTarget)
        {
            var subject = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings)
            {
                DropTarget = dropTarget
            };
            var expectedResult = new BsonDocument
            {
                { "renameCollection", _collectionNamespace.FullName },
                { "to", _newCollectionNamespace.FullName },
                { "dropTarget", dropTarget }
            };

            var result = subject.CreateCommand(null);

            result.Should().Be(expectedResult);
        }
예제 #18
0
        public void CreateCommand_should_return_expected_result_when_WriteConcern_is_set(
            [Values(null, 1, 2)]
            int?w)
        {
            var writeConcern = w.HasValue ? new WriteConcern(w.Value) : null;
            var subject      = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings)
            {
                WriteConcern = writeConcern
            };
            var session = OperationTestHelper.CreateSession();
            var connectionDescription = OperationTestHelper.CreateConnectionDescription();

            var result = subject.CreateCommand(session, connectionDescription);

            var expectedResult = new BsonDocument
            {
                { "renameCollection", _collectionNamespace.FullName },
                { "to", _newCollectionNamespace.FullName },
                { "writeConcern", () => writeConcern.ToBsonDocument(), writeConcern != null }
            };

            result.Should().Be(expectedResult);
        }
        public void CreateCommand_should_return_expected_result_when_WriteConcern_is_set(
            [Values(null, 1, 2)]
            int?w,
            [Values(false, true)]
            bool isWriteConcernSupported)
        {
            var writeConcern = w.HasValue ? new WriteConcern(w.Value) : null;
            var subject      = new RenameCollectionOperation(_collectionNamespace, _newCollectionNamespace, _messageEncoderSettings)
            {
                WriteConcern = writeConcern
            };
            var serverVersion = Feature.CommandsThatWriteAcceptWriteConcern.SupportedOrNotSupportedVersion(isWriteConcernSupported);

            var result = subject.CreateCommand(serverVersion);

            var expectedResult = new BsonDocument
            {
                { "renameCollection", _collectionNamespace.FullName },
                { "to", _newCollectionNamespace.FullName },
                { "writeConcern", () => writeConcern.ToBsonDocument(), writeConcern != null && isWriteConcernSupported }
            };

            result.Should().Be(expectedResult);
        }