Пример #1
0
        public void Equals_should_return_false_if_journal_is_not_equal(bool?journal1, bool?journal2)
        {
            var writeConcern1 = new WriteConcern(null, null, null, journal1);
            var writeConcern2 = new WriteConcern(null, null, null, journal2);

            writeConcern1.Equals((WriteConcern)writeConcern2).Should().BeFalse();
            writeConcern1.Equals((object)writeConcern2).Should().BeFalse();
            writeConcern1.GetHashCode().Should().NotBe(writeConcern2.GetHashCode());
        }
Пример #2
0
        public void Equals_should_return_false_if_fsync_is_not_equal(bool?fsync1, bool?fsync2)
        {
            var writeConcern1 = new WriteConcern(null, null, fsync1, null);
            var writeConcern2 = new WriteConcern(null, null, fsync2, null);

            writeConcern1.Equals((WriteConcern)writeConcern2).Should().BeFalse();
            writeConcern1.Equals((object)writeConcern2).Should().BeFalse();
            writeConcern1.GetHashCode().Should().NotBe(writeConcern2.GetHashCode());
        }
Пример #3
0
        public void Equals_should_return_false_if_wTimeout_is_not_equal(int?wTimeout1Seconds, int?wTimeout2Seconds)
        {
            var wTimeout1     = wTimeout1Seconds.HasValue ? (TimeSpan?)TimeSpan.FromSeconds(wTimeout1Seconds.Value) : null;
            var wTimeout2     = wTimeout2Seconds.HasValue ? (TimeSpan?)TimeSpan.FromSeconds(wTimeout2Seconds.Value) : null;
            var writeConcern1 = new WriteConcern(null, wTimeout1, null, null);
            var writeConcern2 = new WriteConcern(null, wTimeout2, null, null);

            writeConcern1.Equals((WriteConcern)writeConcern2).Should().BeFalse();
            writeConcern1.Equals((object)writeConcern2).Should().BeFalse();
            writeConcern1.GetHashCode().Should().NotBe(writeConcern2.GetHashCode());
        }
Пример #4
0
        public void Equals_should_return_false_if_w_is_not_equal(int?w1, int?w2)
        {
            var wCount1       = w1.HasValue ? (WriteConcern.WValue)w1.Value : null;
            var wCount2       = w2.HasValue ? (WriteConcern.WValue)w2.Value : null;
            var writeConcern1 = new WriteConcern(wCount1, null, null, null);
            var writeConcern2 = new WriteConcern(wCount2, null, null, null);

            writeConcern1.Equals((WriteConcern)writeConcern2).Should().BeFalse();
            writeConcern1.Equals((object)writeConcern2).Should().BeFalse();
            writeConcern1.GetHashCode().Should().NotBe(writeConcern2.GetHashCode());
        }
Пример #5
0
        public void Equals_should_return_true_if_all_fields_are_equal(int?w, int?wTimeoutSeconds, bool?fsync, bool?journal)
        {
            var wCount        = w.HasValue ? (WriteConcern.WValue)w.Value : null;
            var wTimeout      = wTimeoutSeconds.HasValue ? (TimeSpan?)TimeSpan.FromSeconds(wTimeoutSeconds.Value) : null;
            var writeConcern1 = new WriteConcern(wCount, wTimeout, fsync, journal);
            var writeConcern2 = new WriteConcern(wCount, wTimeout, fsync, journal);

            writeConcern1.Equals((WriteConcern)writeConcern2).Should().BeTrue();
            writeConcern1.Equals((object)writeConcern2).Should().BeTrue();
            writeConcern1.GetHashCode().Should().Be(writeConcern2.GetHashCode());
        }
Пример #6
0
        public async Task <BulkWriteResult> ExecuteAsync(IConnectionHandle connection, TimeSpan timeout, CancellationToken cancellationToken)
        {
            var slidingTimeout = new SlidingTimeout(timeout);

            var batchResults      = new List <BulkWriteBatchResult>();
            var remainingRequests = new List <WriteRequest>();
            var hasWriteErrors    = false;

            var originalIndex = 0;

            foreach (WriteRequest request in _requests)
            {
                if (hasWriteErrors && _isOrdered)
                {
                    remainingRequests.Add(request);
                    continue;
                }

                var batchResult = await EmulateSingleRequestAsync(connection, request, originalIndex, slidingTimeout, cancellationToken);

                batchResults.Add(batchResult);

                hasWriteErrors |= batchResult.HasWriteErrors;
                originalIndex++;
            }

            var combiner = new BulkWriteBatchResultCombiner(batchResults, !_writeConcern.Equals(WriteConcern.Unacknowledged));

            return(combiner.CreateResultOrThrowIfHasErrors(remainingRequests));
        }