public void With_minConnections_should_return_expected_result()
        {
            var oldMinConnections = 1;
            var newMinConnections = 2;
            var subject           = new ConnectionPoolSettings(minConnections: oldMinConnections);

            var result = subject.With(minConnections: newMinConnections);

            result.MaintenanceInterval.Should().Be(subject.MaintenanceInterval);
            result.MaxConnections.Should().Be(subject.MaxConnections);
            result.MinConnections.Should().Be(newMinConnections);
            result.WaitQueueSize.Should().Be(subject.WaitQueueSize);
            result.WaitQueueTimeout.Should().Be(subject.WaitQueueTimeout);
        }
        public void With_waitQueueTimeoutl_should_return_expected_result()
        {
            var oldWaitQueueTimeout = TimeSpan.FromSeconds(1);
            var newWaitQueueTimeout = TimeSpan.FromSeconds(2);
            var subject             = new ConnectionPoolSettings(waitQueueTimeout: oldWaitQueueTimeout);

            var result = subject.With(waitQueueTimeout: newWaitQueueTimeout);

            result.MaintenanceInterval.Should().Be(subject.MaintenanceInterval);
            result.MaxConnections.Should().Be(subject.MaxConnections);
            result.MinConnections.Should().Be(subject.MinConnections);
            result.WaitQueueSize.Should().Be(subject.WaitQueueSize);
            result.WaitQueueTimeout.Should().Be(newWaitQueueTimeout);
        }
        public void With_waitQueueSizes_should_return_expected_result()
        {
            var oldWaitQueueSize = 1;
            var newWaitQueueSize = 2;
            var subject          = new ConnectionPoolSettings(waitQueueSize: oldWaitQueueSize);

            var result = subject.With(waitQueueSize: newWaitQueueSize);

            result.MaintenanceInterval.Should().Be(subject.MaintenanceInterval);
            result.MaxConnections.Should().Be(subject.MaxConnections);
            result.MinConnections.Should().Be(subject.MinConnections);
#pragma warning disable 618
            result.WaitQueueSize.Should().Be(newWaitQueueSize);
#pragma warning restore 618
            result.WaitQueueTimeout.Should().Be(subject.WaitQueueTimeout);
        }
        public void With_maintenanceInterval_should_return_expected_result()
        {
            var oldMaintenanceInterval = TimeSpan.FromSeconds(1);
            var newMaintenanceInterval = TimeSpan.FromSeconds(2);
            var subject = new ConnectionPoolSettings(maintenanceInterval: oldMaintenanceInterval);

            var result = subject.With(maintenanceInterval: newMaintenanceInterval);

            result.MaintenanceInterval.Should().Be(newMaintenanceInterval);
            result.MaxConnections.Should().Be(subject.MaxConnections);
            result.MinConnections.Should().Be(subject.MinConnections);
#pragma warning disable 618
            result.WaitQueueSize.Should().Be(subject.WaitQueueSize);
#pragma warning restore 618
            result.WaitQueueTimeout.Should().Be(subject.WaitQueueTimeout);
        }
        public void With_maxConnecting_should_return_expected_result()
        {
            const int oldMaxConnecting = 1;
            const int newMaxConnecting = 2;
            var       subject          = new ConnectionPoolSettings(maxConnecting: oldMaxConnecting);

            var result = subject.With(maxConnecting: newMaxConnecting);

            result.MaintenanceInterval.Should().Be(subject.MaintenanceInterval);
            result.MaxConnecting.Should().Be(newMaxConnecting);
            result.MaxConnections.Should().Be(subject.MaxConnections);
            result.MinConnections.Should().Be(subject.MinConnections);
#pragma warning disable 618
            result.WaitQueueSize.Should().Be(subject.WaitQueueSize);
#pragma warning restore 618
            result.WaitQueueTimeout.Should().Be(subject.WaitQueueTimeout);
        }
 private ConnectionPoolSettings ConfigureConnectionPool(ConnectionPoolSettings settings, ClusterKey clusterKey)
 {
     return settings.With(
         // maintenanceInterval: TODO: should this be configurable?
         maxConnections: clusterKey.MaxConnectionPoolSize,
         minConnections: clusterKey.MinConnectionPoolSize,
         waitQueueSize: clusterKey.WaitQueueSize,
         waitQueueTimeout: clusterKey.WaitQueueTimeout);
 }
        public void With_waitQueueTimeoutl_should_return_expected_result()
        {
            var oldWaitQueueTimeout = TimeSpan.FromSeconds(1);
            var newWaitQueueTimeout = TimeSpan.FromSeconds(2);
            var subject = new ConnectionPoolSettings(waitQueueTimeout: oldWaitQueueTimeout);

            var result = subject.With(waitQueueTimeout: newWaitQueueTimeout);

            result.MaintenanceInterval.Should().Be(subject.MaintenanceInterval);
            result.MaxConnections.Should().Be(subject.MaxConnections);
            result.MinConnections.Should().Be(subject.MinConnections);
            result.WaitQueueSize.Should().Be(subject.WaitQueueSize);
            result.WaitQueueTimeout.Should().Be(newWaitQueueTimeout);
        }
        public void With_minConnections_should_return_expected_result()
        {
            var oldMinConnections = 1;
            var newMinConnections = 2;
            var subject = new ConnectionPoolSettings(minConnections: oldMinConnections);

            var result = subject.With(minConnections: newMinConnections);

            result.MaintenanceInterval.Should().Be(subject.MaintenanceInterval);
            result.MaxConnections.Should().Be(subject.MaxConnections);
            result.MinConnections.Should().Be(newMinConnections);
            result.WaitQueueSize.Should().Be(subject.WaitQueueSize);
            result.WaitQueueTimeout.Should().Be(subject.WaitQueueTimeout);
        }