예제 #1
0
        public void ToString_should_return_expected_result()
        {
            var subject = new WriteConcern.WCount(1);

            var result = subject.ToString();

            result.Should().Be("1");
        }
예제 #2
0
        public void ToBsonValue_should_return_proper_value()
        {
            var wCount    = new WriteConcern.WCount(1);
            var bsonValue = wCount.ToBsonValue();

            bsonValue.Should().BeOfType <BsonInt32>();
            bsonValue.AsInt32.Should().Be(1);
        }
예제 #3
0
        public void ToBsonValue_should_return_expected_result()
        {
            var subject = new WriteConcern.WCount(1);

            var result = subject.ToBsonValue();

            result.Should().BeOfType <BsonInt32>();
            result.AsInt32.Should().Be(1);
        }
예제 #4
0
        public void Equals_should_return_true_if_all_fields_are_equal(int w)
        {
            var wCount1 = new WriteConcern.WCount(w);
            var wCount2 = new WriteConcern.WCount(w);

            wCount1.Equals(wCount2).Should().BeTrue();
            wCount1.Equals((object)wCount2).Should().BeTrue();
            wCount1.GetHashCode().Should().Be(wCount2.GetHashCode());
        }
예제 #5
0
        public void Equals_should_return_false_if_any_fields_are_not_equal(int w1, int w2)
        {
            var wCount1 = new WriteConcern.WCount(w1);
            var wCount2 = new WriteConcern.WCount(w2);

            wCount1.Equals(wCount2).Should().BeFalse();
            wCount1.Equals((object)wCount2).Should().BeFalse();
            wCount1.GetHashCode().Should().NotBe(wCount2.GetHashCode());
        }
예제 #6
0
        public void Equals_should_return_true_if_all_fields_are_equal()
        {
            var subject1 = new WriteConcern.WCount(1);
            var subject2 = new WriteConcern.WCount(1);

            var result1   = subject1.Equals(subject2);
            var result2   = subject1.Equals((object)subject2);
            var hashCode1 = subject1.GetHashCode();
            var hashCode2 = subject2.GetHashCode();

            result1.Should().BeTrue();
            result2.Should().BeTrue();
            hashCode1.Should().Be(hashCode2);
        }
예제 #7
0
        public void Equals_should_return_false_if_any_fields_are_not_equal()
        {
            var subject1 = new WriteConcern.WCount(0);
            var subject2 = new WriteConcern.WCount(1);

            var result1   = subject1.Equals(subject2);
            var result2   = subject1.Equals((object)subject2);
            var hashCode1 = subject1.GetHashCode();
            var hashCode2 = subject2.GetHashCode();

            result1.Should().BeFalse();
            result2.Should().BeFalse();
            hashCode1.Should().NotBe(hashCode2);
        }
예제 #8
0
        public void ToString_should_return_expected_value(object w, int?wTimeoutSeconds, bool?fsync, bool?journal, string expected)
        {
            WriteConcern.WValue parsedW;
            if (w == null)
            {
                parsedW = null;
            }
            else if (w is int)
            {
                parsedW = new WriteConcern.WCount((int)w);
            }
            else
            {
                parsedW = new WriteConcern.WMode((string)w);
            }

            var wTimeout     = wTimeoutSeconds.HasValue ? (TimeSpan?)TimeSpan.FromSeconds(wTimeoutSeconds.Value) : null;
            var writeConcern = new WriteConcern(parsedW, wTimeout, fsync, journal);

            writeConcern.ToString().Should().Be(expected);
        }
예제 #9
0
        // public indexers
        /// <summary>
        /// Gets or sets individual settings by keyword.
        /// </summary>
        /// <param name="keyword">The keyword.</param>
        /// <returns>The value of the setting.</returns>
        public override object this[string keyword]
        {
            get
            {
                if (keyword == null)
                {
                    throw new ArgumentNullException("keyword");
                }
                return(base[__canonicalKeywords[keyword.ToLower()]]);
            }
            set
            {
                if (keyword == null)
                {
                    throw new ArgumentNullException("keyword");
                }
                ReadPreference readPreference;
                switch (keyword.ToLower())
                {
                case "connect":
                    if (value is string)
                    {
                        ConnectionMode = (ConnectionMode)Enum.Parse(typeof(ConnectionMode), (string)value, true);     // ignoreCase
                    }
                    else
                    {
                        ConnectionMode = (ConnectionMode)value;
                    }
                    break;

                case "connecttimeout":
                case "connecttimeoutms":
                    ConnectTimeout = ToTimeSpan(keyword, value);
                    break;

                case "database":
                    DatabaseName = (string)value;
                    break;

                case "fsync":
                    FSync = Convert.ToBoolean(value);
                    break;

                case "guids":
                case "uuidrepresentation":
                    GuidRepresentation = (GuidRepresentation)Enum.Parse(typeof(GuidRepresentation), (string)value, true);     // ignoreCase
                    break;

                case "ipv6":
                    IPv6 = Convert.ToBoolean(value);
                    break;

                case "j":
                case "journal":
                    Journal = Convert.ToBoolean(value);
                    break;

                case "maxidletime":
                case "maxidletimems":
                    MaxConnectionIdleTime = ToTimeSpan(keyword, value);
                    break;

                case "maxlifetime":
                case "maxlifetimems":
                    MaxConnectionLifeTime = ToTimeSpan(keyword, value);
                    break;

                case "maxpoolsize":
                    MaxConnectionPoolSize = Convert.ToInt32(value);
                    break;

                case "minpoolsize":
                    MinConnectionPoolSize = Convert.ToInt32(value);
                    break;

                case "password":
                    Password = (string)value;
                    break;

                case "readpreference":
                    readPreference = _readPreference ?? new ReadPreference();
                    if (value is string)
                    {
                        readPreference.ReadPreferenceMode = (ReadPreferenceMode)Enum.Parse(typeof(ReadPreferenceMode), (string)value, true);     // ignoreCase
                    }
                    else
                    {
                        readPreference.ReadPreferenceMode = (ReadPreferenceMode)value;
                    }
                    ReadPreference = readPreference;
                    break;

                case "readpreferencetags":
                    readPreference = _readPreference ?? new ReadPreference();
                    if (value is string)
                    {
                        readPreference.TagSets = ParseReplicaSetTagSets((string)value);
                    }
                    else
                    {
                        readPreference.TagSets = (IEnumerable <ReplicaSetTagSet>)value;
                    }
                    ReadPreference = readPreference;
                    break;

                case "replicaset":
                    ReplicaSetName = (string)value;
                    break;

                case "safe":
                    var safe = Convert.ToBoolean(value);
                    if (_w == null)
                    {
                        W = safe ? 1 : 0;
                    }
                    else
                    {
                        if (safe)
                        {
                            // don't overwrite existing W value unless it's 0
                            var wCount = _w as WriteConcern.WCount;
                            if (wCount != null && wCount.Value == 0)
                            {
                                W = 1;
                            }
                        }
                        else
                        {
                            W = 0;
                        }
                    }
                    break;

                case "secondaryacceptablelatency":
                case "secondaryacceptablelatencyms":
                    SecondaryAcceptableLatency = ToTimeSpan(keyword, value);
                    break;

                case "server":
                case "servers":
                    Servers = ParseServersString((string)value);
                    break;

                case "slaveok":
#pragma warning disable 618
                    SlaveOk = Convert.ToBoolean(value);
#pragma warning restore
                    break;

                case "sockettimeout":
                case "sockettimeoutms":
                    SocketTimeout = ToTimeSpan(keyword, value);
                    break;

                case "ssl":
                    UseSsl = Convert.ToBoolean(value);
                    break;

                case "sslverifycertificate":
                    VerifySslCertificate = Convert.ToBoolean(value);
                    break;

                case "username":
                    Username = (string)value;
                    break;

                case "w":
                    if (IsIntegerType(value))
                    {
                        W = new WriteConcern.WCount(Convert.ToInt32(value));
                    }
                    else if (value is string)
                    {
                        W = WriteConcern.WValue.Parse((string)value);
                    }
                    else
                    {
                        W = (WriteConcern.WValue)value;
                    }
                    break;

                case "waitqueuemultiple":
                    WaitQueueMultiple = Convert.ToDouble(value);
                    break;

                case "waitqueuesize":
                    WaitQueueSize = Convert.ToInt32(value);
                    break;

                case "waitqueuetimeout":
                case "waitqueuetimeoutms":
                    WaitQueueTimeout = ToTimeSpan(keyword, value);
                    break;

                case "wtimeout":
                case "wtimeoutms":
                    WTimeout = ToTimeSpan(keyword, value);
                    break;

                default:
                    var message = string.Format("Invalid keyword '{0}'.", keyword);
                    throw new ArgumentException(message);
                }
            }
        }
예제 #10
0
        public void constructor_should_initialize_instance(int w)
        {
            var result = new WriteConcern.WCount(w);

            result.Value.Should().Be(w);
        }
예제 #11
0
        public void ToString_should_return_proper_value()
        {
            var wCount = new WriteConcern.WCount(1);

            wCount.ToString().Should().Be("1");
        }