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); }
// 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 }
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"); }
// 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 }
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; }
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); }
// 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; }
// 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; }
// 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 }
// 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; }
public void implicit_conversion_from_string_should_return_expected_result_when_value_is_not_null() { WriteConcern.WValue result = (string)null; result.Should().BeNull(); }
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); }
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 }
public void Static_implicit_conversion_with_null_string_argument_returns_properly_initialized_instance() { WriteConcern.WValue wValue = (string)null; wValue.Should().BeNull(); }
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; }
public void implicit_conversion_from_nullable_int_should_return_expected_result_when_value_is_null() { WriteConcern.WValue result = (int?)null; result.Should().BeNull(); }