Esempio n. 1
0
        public void implicit_conversion_from_nullable_int_should_return_expected_result_when_value_is_not_null()
        {
            WriteConcern.WValue result = (int?)1;

            result.Should().BeOfType <WriteConcern.WCount>();
            ((WriteConcern.WCount)result).Value.Should().Be(1);
        }
Esempio n. 2
0
        // constructors
        /// <summary>
        /// Creates a new instance of MongoUrl.
        /// </summary>
        /// <param name="url">The URL containing the settings.</param>
        public MongoUrl(string url)
        {
            var builder = new MongoUrlBuilder(url); // parses url

            _connectionMode     = builder.ConnectionMode;
            _connectTimeout     = builder.ConnectTimeout;
            _databaseName       = builder.DatabaseName;
            _defaultCredentials = builder.DefaultCredentials;
            _fsync = builder.FSync;
            _guidRepresentation = builder.GuidRepresentation;
            _ipv6    = builder.IPv6;
            _journal = builder.Journal;
            _maxConnectionIdleTime      = builder.MaxConnectionIdleTime;
            _maxConnectionLifeTime      = builder.MaxConnectionLifeTime;
            _maxConnectionPoolSize      = builder.MaxConnectionPoolSize;
            _minConnectionPoolSize      = builder.MinConnectionPoolSize;
            _readPreference             = builder.ReadPreference;
            _replicaSetName             = builder.ReplicaSetName;
            _secondaryAcceptableLatency = builder.SecondaryAcceptableLatency;
            _servers = builder.Servers;
#pragma warning disable 618
            _slaveOk = builder.SlaveOk;
#pragma warning restore
            _socketTimeout        = builder.SocketTimeout;
            _useSsl               = builder.UseSsl;
            _verifySslCertificate = builder.VerifySslCertificate;
            _w = builder.W;
            _waitQueueMultiple = builder.WaitQueueMultiple;
            _waitQueueSize     = builder.WaitQueueSize;
            _waitQueueTimeout  = builder.WaitQueueTimeout;
            _wTimeout          = builder.WTimeout;
            _url = builder.ToString(); // keep canonical form
        }
Esempio n. 3
0
        public void implicit_conversion_from_string_should_return_expected_result_when_value_is_null()
        {
            WriteConcern.WValue result = "mode";

            result.Should().BeOfType <WriteConcern.WMode>();
            ((WriteConcern.WMode)result).Value.Should().Be("mode");
        }
Esempio n. 4
0
        // constructors
        /// <summary>
        /// Creates a new instance of MongoUrl.
        /// </summary>
        /// <param name="url">The URL containing the settings.</param>
        public MongoUrl(string url)
        {
            var builder = new MongoUrlBuilder(url); // parses url

            _authenticationMechanism           = builder.AuthenticationMechanism;
            _authenticationMechanismProperties = builder.AuthenticationMechanismProperties;
            _authenticationSource = builder.AuthenticationSource;
            _connectionMode       = builder.ConnectionMode;
            _connectTimeout       = builder.ConnectTimeout;
            _databaseName         = builder.DatabaseName;
            _fsync = builder.FSync;
            _guidRepresentation = builder.GuidRepresentation;
            _ipv6                  = builder.IPv6;
            _journal               = builder.Journal;
            _localThreshold        = builder.LocalThreshold;
            _maxConnectionIdleTime = builder.MaxConnectionIdleTime;
            _maxConnectionLifeTime = builder.MaxConnectionLifeTime;
            _maxConnectionPoolSize = builder.MaxConnectionPoolSize;
            _minConnectionPoolSize = builder.MinConnectionPoolSize;
            _password              = builder.Password;
            _readPreference        = builder.ReadPreference;
            _replicaSetName        = builder.ReplicaSetName;
            _servers               = builder.Servers;
            _socketTimeout         = builder.SocketTimeout;
            _username              = builder.Username;
            _useSsl                = builder.UseSsl;
            _verifySslCertificate  = builder.VerifySslCertificate;
            _w = builder.W;
            _waitQueueMultiple = builder.WaitQueueMultiple;
            _waitQueueSize     = builder.WaitQueueSize;
            _waitQueueTimeout  = builder.WaitQueueTimeout;
            _wTimeout          = builder.WTimeout;
            _url = builder.ToString(); // keep canonical form
        }
Esempio n. 5
0
 private void ResetValues()
 {
     // set fields and not properties so base class items aren't set
     _connectionMode     = ConnectionMode.Automatic;
     _connectTimeout     = MongoDefaults.ConnectTimeout;
     _databaseName       = null;
     _fsync              = null;
     _guidRepresentation = MongoDefaults.GuidRepresentation;
     _ipv6    = false;
     _journal = null;
     _maxConnectionIdleTime = MongoDefaults.MaxConnectionIdleTime;
     _maxConnectionLifeTime = MongoDefaults.MaxConnectionLifeTime;
     _maxConnectionPoolSize = MongoDefaults.MaxConnectionPoolSize;
     _minConnectionPoolSize = MongoDefaults.MinConnectionPoolSize;
     _password                   = null;
     _readPreference             = null;
     _replicaSetName             = null;
     _secondaryAcceptableLatency = MongoDefaults.SecondaryAcceptableLatency;
     _servers              = null;
     _slaveOk              = null;
     _socketTimeout        = MongoDefaults.SocketTimeout;
     _username             = null;
     _useSsl               = false;
     _verifySslCertificate = true;
     _w = null;
     _waitQueueMultiple = MongoDefaults.WaitQueueMultiple;
     _waitQueueSize     = MongoDefaults.WaitQueueSize;
     _waitQueueTimeout  = MongoDefaults.WaitQueueTimeout;
     _wTimeout          = null;
 }
Esempio n. 6
0
        public void implicit_conversion_from_int_should_return_expected_result()
        {
            WriteConcern.WValue result = 1;

            result.Should().BeOfType <WriteConcern.WCount>();
            ((WriteConcern.WCount)result).Value.Should().Be(1);
        }
Esempio n. 7
0
 // constructors
 /// <summary>
 /// Creates a new instance of MongoUrlBuilder.
 /// </summary>
 public MongoUrlBuilder()
 {
     _authenticationMechanism = MongoDefaults.AuthenticationMechanism;
     _authenticationSource    = null;
     _connectionMode          = ConnectionMode.Automatic;
     _connectTimeout          = MongoDefaults.ConnectTimeout;
     _databaseName            = null;
     _fsync              = null;
     _gssapiServiceName  = null;
     _guidRepresentation = MongoDefaults.GuidRepresentation;
     _ipv6    = false;
     _journal = null;
     _maxConnectionIdleTime = MongoDefaults.MaxConnectionIdleTime;
     _maxConnectionLifeTime = MongoDefaults.MaxConnectionLifeTime;
     _maxConnectionPoolSize = MongoDefaults.MaxConnectionPoolSize;
     _minConnectionPoolSize = MongoDefaults.MinConnectionPoolSize;
     _password                   = null;
     _readPreference             = null;
     _replicaSetName             = null;
     _secondaryAcceptableLatency = MongoDefaults.SecondaryAcceptableLatency;
     _servers              = null;
     _slaveOk              = null;
     _socketTimeout        = MongoDefaults.SocketTimeout;
     _username             = null;
     _useSsl               = false;
     _verifySslCertificate = true;
     _w = null;
     _waitQueueMultiple = MongoDefaults.WaitQueueMultiple;
     _waitQueueSize     = MongoDefaults.WaitQueueSize;
     _waitQueueTimeout  = MongoDefaults.WaitQueueTimeout;
     _wTimeout          = null;
 }
 // constructors
 /// <summary>
 /// Creates a new instance of MongoUrlBuilder.
 /// </summary>
 public MongoUrlBuilder()
 {
     _authenticationMechanism           = MongoDefaults.AuthenticationMechanism;
     _authenticationMechanismProperties = new Dictionary <string, string>(StringComparer.InvariantCultureIgnoreCase);
     _authenticationSource = null;
     _connectionMode       = ConnectionMode.Automatic;
     _connectTimeout       = MongoDefaults.ConnectTimeout;
     _databaseName         = null;
     _fsync = null;
     _guidRepresentation = MongoDefaults.GuidRepresentation;
     _ipv6    = false;
     _journal = null;
     _maxConnectionIdleTime = MongoDefaults.MaxConnectionIdleTime;
     _maxConnectionLifeTime = MongoDefaults.MaxConnectionLifeTime;
     _maxConnectionPoolSize = MongoDefaults.MaxConnectionPoolSize;
     _minConnectionPoolSize = MongoDefaults.MinConnectionPoolSize;
     _password               = null;
     _readConcernLevel       = null;
     _readPreference         = null;
     _replicaSetName         = null;
     _localThreshold         = MongoDefaults.LocalThreshold;
     _servers                = new[] { new MongoServerAddress("localhost", 27017) };
     _serverSelectionTimeout = MongoDefaults.ServerSelectionTimeout;
     _socketTimeout          = MongoDefaults.SocketTimeout;
     _username               = null;
     _useSsl = false;
     _verifySslCertificate = true;
     _w = null;
     _waitQueueMultiple = MongoDefaults.WaitQueueMultiple;
     _waitQueueSize     = MongoDefaults.WaitQueueSize;
     _waitQueueTimeout  = MongoDefaults.WaitQueueTimeout;
     _wTimeout          = null;
 }
Esempio n. 9
0
        // constructors
        /// <summary>
        /// Creates a new instance of MongoUrl.
        /// </summary>
        /// <param name="url">The URL containing the settings.</param>
        public MongoUrl(string url)
        {
            _originalUrl = url;

            var builder = new MongoUrlBuilder(url); // parses url

            _allowInsecureTls                  = builder.AllowInsecureTls;
            _applicationName                   = builder.ApplicationName;
            _authenticationMechanism           = builder.AuthenticationMechanism;
            _authenticationMechanismProperties = builder.AuthenticationMechanismProperties;
            _authenticationSource              = builder.AuthenticationSource;
            _compressors    = builder.Compressors;
            _connectionMode = builder.ConnectionMode;
            _connectTimeout = builder.ConnectTimeout;
            _databaseName   = builder.DatabaseName;
            _fsync          = builder.FSync;
#pragma warning disable 618
            if (BsonDefaults.GuidRepresentationMode == GuidRepresentationMode.V2)
            {
                _guidRepresentation = builder.GuidRepresentation;
            }
#pragma warning restore 618
            _heartbeatInterval = builder.HeartbeatInterval;
            _heartbeatTimeout  = builder.HeartbeatTimeout;
            _ipv6                   = builder.IPv6;
            _isResolved             = builder.Scheme != ConnectionStringScheme.MongoDBPlusSrv;
            _journal                = builder.Journal;
            _localThreshold         = builder.LocalThreshold;
            _maxConnectionIdleTime  = builder.MaxConnectionIdleTime;
            _maxConnectionLifeTime  = builder.MaxConnectionLifeTime;
            _maxConnectionPoolSize  = builder.MaxConnectionPoolSize;
            _minConnectionPoolSize  = builder.MinConnectionPoolSize;
            _password               = builder.Password;
            _readConcernLevel       = builder.ReadConcernLevel;
            _readPreference         = builder.ReadPreference;
            _replicaSetName         = builder.ReplicaSetName;
            _retryReads             = builder.RetryReads;
            _retryWrites            = builder.RetryWrites;
            _scheme                 = builder.Scheme;
            _servers                = builder.Servers;
            _serverSelectionTimeout = builder.ServerSelectionTimeout;
            _socketTimeout          = builder.SocketTimeout;
            _tlsDisableCertificateRevocationCheck = builder.TlsDisableCertificateRevocationCheck;
            _username = builder.Username;
            _useTls   = builder.UseTls;
            _w        = builder.W;
#pragma warning disable 618
            _waitQueueMultiple = builder.WaitQueueMultiple;
            _waitQueueSize     = builder.WaitQueueSize;
#pragma warning restore 618
            _waitQueueTimeout = builder.WaitQueueTimeout;
            _wTimeout         = builder.WTimeout;
            _url = builder.ToString(); // keep canonical form
        }
        // constructors
        /// <summary>
        /// Creates a new instance of MongoUrlBuilder.
        /// </summary>
        public MongoUrlBuilder()
        {
            _allowInsecureTls                  = false;
            _applicationName                   = null;
            _authenticationMechanism           = MongoDefaults.AuthenticationMechanism;
            _authenticationMechanismProperties = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
            _authenticationSource              = null;
            _compressors    = new CompressorConfiguration[0];
            _connectionMode = ConnectionMode.Automatic;
#pragma warning disable CS0618 // Type or member is obsolete
            _connectionModeSwitch = ConnectionModeSwitch.NotSet;
#pragma warning restore CS0618 // Type or member is obsolete
            _connectTimeout   = MongoDefaults.ConnectTimeout;
            _databaseName     = null;
            _directConnection = null;
            _fsync            = null;
#pragma warning disable 618
            if (BsonDefaults.GuidRepresentationMode == GuidRepresentationMode.V2)
            {
                _guidRepresentation = MongoDefaults.GuidRepresentation;
            }
#pragma warning restore 618
            _heartbeatInterval = ServerSettings.DefaultHeartbeatInterval;
            _heartbeatTimeout  = ServerSettings.DefaultHeartbeatTimeout;
            _ipv6                   = false;
            _journal                = null;
            _loadBalanced           = false;
            _localThreshold         = MongoDefaults.LocalThreshold;
            _maxConnecting          = MongoInternalDefaults.ConnectionPool.MaxConnecting;
            _maxConnectionIdleTime  = MongoDefaults.MaxConnectionIdleTime;
            _maxConnectionLifeTime  = MongoDefaults.MaxConnectionLifeTime;
            _maxConnectionPoolSize  = MongoDefaults.MaxConnectionPoolSize;
            _minConnectionPoolSize  = MongoDefaults.MinConnectionPoolSize;
            _password               = null;
            _readConcernLevel       = null;
            _readPreference         = null;
            _replicaSetName         = null;
            _retryReads             = null;
            _retryWrites            = null;
            _scheme                 = ConnectionStringScheme.MongoDB;
            _servers                = new[] { new MongoServerAddress("localhost", 27017) };
            _serverSelectionTimeout = MongoDefaults.ServerSelectionTimeout;
            _socketTimeout          = MongoDefaults.SocketTimeout;
            _srvMaxHosts            = null;
            _username               = null;
            _useTls                 = false;
            _w = null;
#pragma warning disable 618
            _waitQueueMultiple = MongoDefaults.WaitQueueMultiple;
            _waitQueueSize     = MongoDefaults.WaitQueueSize;
#pragma warning restore 618
            _waitQueueTimeout = MongoDefaults.WaitQueueTimeout;
            _wTimeout         = null;
        }
Esempio n. 11
0
        // constructors
        /// <summary>
        /// Creates a new instance of MongoUrl.
        /// </summary>
        /// <param name="url">The URL containing the settings.</param>
        public MongoUrl(string url)
        {
            _originalUrl = url;

            var builder = new MongoUrlBuilder(url); // parses url

            _applicationName                   = builder.ApplicationName;
            _authenticationMechanism           = builder.AuthenticationMechanism;
            _authenticationMechanismProperties = builder.AuthenticationMechanismProperties;
            _authenticationSource              = builder.AuthenticationSource;
            _connectionMode     = builder.ConnectionMode;
            _connectTimeout     = builder.ConnectTimeout;
            _databaseName       = builder.DatabaseName;
            _fsync              = builder.FSync;
            _guidRepresentation = builder.GuidRepresentation;
            _heartbeatInterval  = builder.HeartbeatInterval;
            _heartbeatTimeout   = builder.HeartbeatTimeout;
            _ipv6                   = builder.IPv6;
            _isResolved             = builder.Scheme != ConnectionStringScheme.MongoDBPlusSrv;
            _journal                = builder.Journal;
            _localThreshold         = builder.LocalThreshold;
            _maxConnectionIdleTime  = builder.MaxConnectionIdleTime;
            _maxConnectionLifeTime  = builder.MaxConnectionLifeTime;
            _maxConnectionPoolSize  = builder.MaxConnectionPoolSize;
            _minConnectionPoolSize  = builder.MinConnectionPoolSize;
            _password               = builder.Password;
            _readConcernLevel       = builder.ReadConcernLevel;
            _readPreference         = builder.ReadPreference;
            _replicaSetName         = builder.ReplicaSetName;
            _retryReads             = builder.RetryReads;
            _retryWrites            = builder.RetryWrites;
            _scheme                 = builder.Scheme;
            _servers                = builder.Servers;
            _serverSelectionTimeout = builder.ServerSelectionTimeout;
            _socketTimeout          = builder.SocketTimeout;
            _username               = builder.Username;
            _useSsl                 = builder.UseSsl;
            _verifySslCertificate   = builder.VerifySslCertificate;
            _w = builder.W;
            _waitQueueMultiple = builder.WaitQueueMultiple;
            _waitQueueSize     = builder.WaitQueueSize;
            _waitQueueTimeout  = builder.WaitQueueTimeout;
            _wTimeout          = builder.WTimeout;
            _url = builder.ToString(); // keep canonical form
        }
Esempio n. 12
0
 // constructors
 /// <summary>
 /// Creates a new instance of MongoUrlBuilder.
 /// </summary>
 public MongoUrlBuilder()
 {
     _allowInsecureTls                  = false;
     _applicationName                   = null;
     _authenticationMechanism           = MongoDefaults.AuthenticationMechanism;
     _authenticationMechanismProperties = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
     _authenticationSource              = null;
     _compressors        = new CompressorConfiguration[0];
     _connectionMode     = ConnectionMode.Automatic;
     _connectTimeout     = MongoDefaults.ConnectTimeout;
     _databaseName       = null;
     _fsync              = null;
     _guidRepresentation = MongoDefaults.GuidRepresentation;
     _heartbeatInterval  = ServerSettings.DefaultHeartbeatInterval;
     _heartbeatTimeout   = ServerSettings.DefaultHeartbeatTimeout;
     _ipv6    = false;
     _journal = null;
     _maxConnectionIdleTime = MongoDefaults.MaxConnectionIdleTime;
     _maxConnectionLifeTime = MongoDefaults.MaxConnectionLifeTime;
     _maxConnectionPoolSize = MongoDefaults.MaxConnectionPoolSize;
     _minConnectionPoolSize = MongoDefaults.MinConnectionPoolSize;
     _password               = null;
     _readConcernLevel       = null;
     _readPreference         = null;
     _replicaSetName         = null;
     _retryReads             = null;
     _retryWrites            = null;
     _localThreshold         = MongoDefaults.LocalThreshold;
     _scheme                 = ConnectionStringScheme.MongoDB;
     _servers                = new[] { new MongoServerAddress("localhost", 27017) };
     _serverSelectionTimeout = MongoDefaults.ServerSelectionTimeout;
     _socketTimeout          = MongoDefaults.SocketTimeout;
     _username               = null;
     _useTls                 = false;
     _w = null;
     _waitQueueMultiple = MongoDefaults.WaitQueueMultiple;
     _waitQueueSize     = MongoDefaults.WaitQueueSize;
     _waitQueueTimeout  = MongoDefaults.WaitQueueTimeout;
     _wTimeout          = null;
 }
        /// <summary>
        /// Parses a URL and sets all settings to match the URL.
        /// </summary>
        /// <param name="url">The URL.</param>
        public void Parse(string url)
        {
            var connectionString = new ConnectionString(url);

            _authenticationMechanism           = connectionString.AuthMechanism;
            _authenticationMechanismProperties = connectionString.AuthMechanismProperties.ToDictionary(x => x.Key, x => x.Value, StringComparer.InvariantCultureIgnoreCase);
            _authenticationSource = connectionString.AuthSource;
            switch (connectionString.Connect)
            {
            case ClusterConnectionMode.Direct:
                _connectionMode = Driver.ConnectionMode.Direct;
                break;

            case ClusterConnectionMode.ReplicaSet:
                _connectionMode = Driver.ConnectionMode.ReplicaSet;
                break;

            case ClusterConnectionMode.Sharded:
                _connectionMode = Driver.ConnectionMode.ShardRouter;
                break;

            case ClusterConnectionMode.Standalone:
                _connectionMode = Driver.ConnectionMode.Standalone;
                break;

            default:
                _connectionMode = Driver.ConnectionMode.Automatic;
                break;
            }
            _connectTimeout     = connectionString.ConnectTimeout.GetValueOrDefault(MongoDefaults.ConnectTimeout);
            _databaseName       = connectionString.DatabaseName;
            _fsync              = connectionString.FSync;
            _guidRepresentation = connectionString.UuidRepresentation.GetValueOrDefault(MongoDefaults.GuidRepresentation);
            _ipv6    = connectionString.Ipv6.GetValueOrDefault(false);
            _journal = connectionString.Journal;
            _maxConnectionIdleTime = connectionString.MaxIdleTime.GetValueOrDefault(MongoDefaults.MaxConnectionIdleTime);
            _maxConnectionLifeTime = connectionString.MaxLifeTime.GetValueOrDefault(MongoDefaults.MaxConnectionLifeTime);
            _maxConnectionPoolSize = connectionString.MaxPoolSize.GetValueOrDefault(MongoDefaults.MaxConnectionPoolSize);
            _minConnectionPoolSize = connectionString.MinPoolSize.GetValueOrDefault(MongoDefaults.MinConnectionPoolSize);
            _password         = connectionString.Password;
            _readConcernLevel = connectionString.ReadConcernLevel;
            if (connectionString.ReadPreference != null)
            {
                _readPreference = new ReadPreference(connectionString.ReadPreference.Value);
            }
            if (connectionString.ReadPreferenceTags != null)
            {
                if (_readPreference == null)
                {
                    throw new MongoConfigurationException("ReadPreferenceMode is required when using tag sets.");
                }
                _readPreference = _readPreference.With(tagSets: connectionString.ReadPreferenceTags);
            }

            _replicaSetName = connectionString.ReplicaSet;
            _localThreshold = connectionString.LocalThreshold.GetValueOrDefault(MongoDefaults.LocalThreshold);
            _servers        = connectionString.Hosts.Select(endPoint =>
            {
                DnsEndPoint dnsEndPoint;
                IPEndPoint ipEndPoint;
                if ((dnsEndPoint = endPoint as DnsEndPoint) != null)
                {
                    return(new MongoServerAddress(dnsEndPoint.Host, dnsEndPoint.Port));
                }
                else if ((ipEndPoint = endPoint as IPEndPoint) != null)
                {
                    return(new MongoServerAddress(ipEndPoint.Address.ToString(), ipEndPoint.Port));
                }
                else
                {
                    throw new NotSupportedException("Only DnsEndPoint and IPEndPoints are supported in the connection string.");
                }
            });
            _serverSelectionTimeout = connectionString.ServerSelectionTimeout.GetValueOrDefault(MongoDefaults.ServerSelectionTimeout);
            _socketTimeout          = connectionString.SocketTimeout.GetValueOrDefault(MongoDefaults.SocketTimeout);
            _username             = connectionString.Username;
            _useSsl               = connectionString.Ssl.GetValueOrDefault(false);
            _verifySslCertificate = connectionString.SslVerifyCertificate.GetValueOrDefault(true);
            _w = connectionString.W;
            if (connectionString.WaitQueueSize != null)
            {
                _waitQueueSize     = connectionString.WaitQueueSize.Value;
                _waitQueueMultiple = 0.0;
            }
            else if (connectionString.WaitQueueMultiple != null)
            {
                _waitQueueMultiple = connectionString.WaitQueueMultiple.Value;
                _waitQueueSize     = 0;
            }
            _waitQueueTimeout = connectionString.WaitQueueTimeout.GetValueOrDefault(MongoDefaults.WaitQueueTimeout);
            _wTimeout         = connectionString.WTimeout;
        }
Esempio n. 14
0
        public void implicit_conversion_from_string_should_return_expected_result_when_value_is_not_null()
        {
            WriteConcern.WValue result = (string)null;

            result.Should().BeNull();
        }
Esempio n. 15
0
 public void Static_implicit_conversion_with_nullable_int_argument_returns_properly_initialized_instance()
 {
     WriteConcern.WValue wValue = (int?)1;
     wValue.Should().BeOfType <WriteConcern.WCount>();
     ((WriteConcern.WCount)wValue).Value.Should().Be(1);
 }
Esempio n. 16
0
        internal MongoUrl(MongoUrlBuilder builder)
        {
            _allowInsecureTls                  = builder.AllowInsecureTls;
            _applicationName                   = builder.ApplicationName;
            _authenticationMechanism           = builder.AuthenticationMechanism;
            _authenticationMechanismProperties = builder.AuthenticationMechanismProperties;
            _authenticationSource              = builder.AuthenticationSource;
            _compressors = builder.Compressors;
#pragma warning disable CS0618 // Type or member is obsolete
            if (builder.ConnectionModeSwitch == ConnectionModeSwitch.UseConnectionMode)
            {
                _connectionMode = builder.ConnectionMode;
            }
            _connectionModeSwitch = builder.ConnectionModeSwitch;
#pragma warning restore CS0618 // Type or member is obsolete
            _connectTimeout = builder.ConnectTimeout;
            _databaseName   = builder.DatabaseName;
#pragma warning disable CS0618 // Type or member is obsolete
            if (builder.ConnectionModeSwitch == ConnectionModeSwitch.UseDirectConnection)
            {
                _directConnection = builder.DirectConnection;
            }
#pragma warning restore CS0618 // Type or member is obsolete
            _fsync = builder.FSync;
#pragma warning disable 618
            if (BsonDefaults.GuidRepresentationMode == GuidRepresentationMode.V2)
            {
                _guidRepresentation = builder.GuidRepresentation;
            }
#pragma warning restore 618
            _heartbeatInterval = builder.HeartbeatInterval;
            _heartbeatTimeout  = builder.HeartbeatTimeout;
            _ipv6                   = builder.IPv6;
            _isResolved             = builder.Scheme != ConnectionStringScheme.MongoDBPlusSrv;
            _journal                = builder.Journal;
            _loadBalanced           = builder.LoadBalanced;
            _localThreshold         = builder.LocalThreshold;
            _maxConnecting          = builder.MaxConnecting;
            _maxConnectionIdleTime  = builder.MaxConnectionIdleTime;
            _maxConnectionLifeTime  = builder.MaxConnectionLifeTime;
            _maxConnectionPoolSize  = builder.MaxConnectionPoolSize;
            _minConnectionPoolSize  = builder.MinConnectionPoolSize;
            _password               = builder.Password;
            _readConcernLevel       = builder.ReadConcernLevel;
            _readPreference         = builder.ReadPreference;
            _replicaSetName         = builder.ReplicaSetName;
            _retryReads             = builder.RetryReads;
            _retryWrites            = builder.RetryWrites;
            _scheme                 = builder.Scheme;
            _servers                = builder.Servers;
            _serverSelectionTimeout = builder.ServerSelectionTimeout;
            _socketTimeout          = builder.SocketTimeout;
            _srvMaxHosts            = builder.SrvMaxHosts;
            _tlsDisableCertificateRevocationCheck = builder.TlsDisableCertificateRevocationCheck;
            _username = builder.Username;
            _useTls   = builder.UseTls;
            _w        = builder.W;
#pragma warning disable 618
            _waitQueueMultiple = builder.WaitQueueMultiple;
            _waitQueueSize     = builder.WaitQueueSize;
#pragma warning restore 618
            _waitQueueTimeout = builder.WaitQueueTimeout;
            _wTimeout         = builder.WTimeout;
            _url = builder.ToString(); // keep canonical form
        }
Esempio n. 17
0
 public void Static_implicit_conversion_with_null_string_argument_returns_properly_initialized_instance()
 {
     WriteConcern.WValue wValue = (string)null;
     wValue.Should().BeNull();
 }
Esempio n. 18
0
 public void Static_implicit_conversion_with_string_argument_returns_properly_initialized_instance()
 {
     WriteConcern.WValue wValue = "mode";
     wValue.Should().BeOfType <WriteConcern.WMode>();
     ((WriteConcern.WMode)wValue).Value.Should().Be("mode");
 }
        /// <summary>
        /// Parses a URL and sets all settings to match the URL.
        /// </summary>
        /// <param name="url">The URL.</param>
        public void Parse(string url)
        {
            var connectionString = new ConnectionString(url);

            _applicationName                   = connectionString.ApplicationName;
            _authenticationMechanism           = connectionString.AuthMechanism;
            _authenticationMechanismProperties = connectionString.AuthMechanismProperties.ToDictionary(x => x.Key, x => x.Value, StringComparer.OrdinalIgnoreCase);
            _authenticationSource              = connectionString.AuthSource;
            switch (connectionString.Connect)
            {
            case ClusterConnectionMode.Direct:
                _connectionMode = Driver.ConnectionMode.Direct;
                break;

            case ClusterConnectionMode.ReplicaSet:
                _connectionMode = Driver.ConnectionMode.ReplicaSet;
                break;

            case ClusterConnectionMode.Sharded:
                _connectionMode = Driver.ConnectionMode.ShardRouter;
                break;

            case ClusterConnectionMode.Standalone:
                _connectionMode = Driver.ConnectionMode.Standalone;
                break;

            default:
                _connectionMode = Driver.ConnectionMode.Automatic;
                break;
            }
            _connectTimeout     = connectionString.ConnectTimeout.GetValueOrDefault(MongoDefaults.ConnectTimeout);
            _databaseName       = connectionString.DatabaseName;
            _fsync              = connectionString.FSync;
            _guidRepresentation = connectionString.UuidRepresentation.GetValueOrDefault(MongoDefaults.GuidRepresentation);
            _heartbeatInterval  = connectionString.HeartbeatInterval ?? ServerSettings.DefaultHeartbeatInterval;
            _heartbeatTimeout   = connectionString.HeartbeatTimeout ?? ServerSettings.DefaultHeartbeatTimeout;
            _ipv6    = connectionString.Ipv6.GetValueOrDefault(false);
            _journal = connectionString.Journal;
            _maxConnectionIdleTime = connectionString.MaxIdleTime.GetValueOrDefault(MongoDefaults.MaxConnectionIdleTime);
            _maxConnectionLifeTime = connectionString.MaxLifeTime.GetValueOrDefault(MongoDefaults.MaxConnectionLifeTime);
            _maxConnectionPoolSize = connectionString.MaxPoolSize.GetValueOrDefault(MongoDefaults.MaxConnectionPoolSize);
            _minConnectionPoolSize = connectionString.MinPoolSize.GetValueOrDefault(MongoDefaults.MinConnectionPoolSize);
            _password         = connectionString.Password;
            _readConcernLevel = connectionString.ReadConcernLevel;
            if (connectionString.ReadPreference.HasValue || connectionString.ReadPreferenceTags != null || connectionString.MaxStaleness.HasValue)
            {
                if (!connectionString.ReadPreference.HasValue)
                {
                    throw new MongoConfigurationException("readPreference mode is required when using tag sets or max staleness.");
                }
                _readPreference = new ReadPreference(connectionString.ReadPreference.Value, connectionString.ReadPreferenceTags, connectionString.MaxStaleness);
            }
            _replicaSetName = connectionString.ReplicaSet;
            _retryWrites    = connectionString.RetryWrites;
            _localThreshold = connectionString.LocalThreshold.GetValueOrDefault(MongoDefaults.LocalThreshold);
            _scheme         = connectionString.Scheme;
            _servers        = connectionString.Hosts.Select(endPoint =>
            {
                DnsEndPoint dnsEndPoint;
                IPEndPoint ipEndPoint;
                if ((dnsEndPoint = endPoint as DnsEndPoint) != null)
                {
                    return(new MongoServerAddress(dnsEndPoint.Host, dnsEndPoint.Port));
                }
                else if ((ipEndPoint = endPoint as IPEndPoint) != null)
                {
                    var address = ipEndPoint.Address.ToString();
                    if (ipEndPoint.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
                    {
                        address = "[" + address + "]";
                    }
                    return(new MongoServerAddress(address, ipEndPoint.Port));
                }
                else
                {
                    throw new NotSupportedException("Only DnsEndPoint and IPEndPoints are supported in the connection string.");
                }
            });
            _serverSelectionTimeout = connectionString.ServerSelectionTimeout.GetValueOrDefault(MongoDefaults.ServerSelectionTimeout);
            _socketTimeout          = connectionString.SocketTimeout.GetValueOrDefault(MongoDefaults.SocketTimeout);
            _username             = connectionString.Username;
            _useSsl               = connectionString.Ssl.GetValueOrDefault(false);
            _verifySslCertificate = connectionString.SslVerifyCertificate.GetValueOrDefault(true);
            _w = connectionString.W;
            if (connectionString.WaitQueueSize != null)
            {
                _waitQueueSize     = connectionString.WaitQueueSize.Value;
                _waitQueueMultiple = 0.0;
            }
            else if (connectionString.WaitQueueMultiple != null)
            {
                _waitQueueMultiple = connectionString.WaitQueueMultiple.Value;
                _waitQueueSize     = 0;
            }
            _waitQueueTimeout = connectionString.WaitQueueTimeout.GetValueOrDefault(MongoDefaults.WaitQueueTimeout);
            _wTimeout         = connectionString.WTimeout;
        }
Esempio n. 20
0
        public void implicit_conversion_from_nullable_int_should_return_expected_result_when_value_is_null()
        {
            WriteConcern.WValue result = (int?)null;

            result.Should().BeNull();
        }