Example #1
0
        public void constructor_should_initialize_instance()
        {
            var server  = new Mock <IServer>().Object;
            var channel = new Mock <IChannelHandle>().Object;
            var session = new Mock <ICoreSessionHandle>().Object;

            var result = new ChannelReadWriteBinding(server, channel, session);

            result._channel().Should().BeSameAs(channel);
            result._disposed().Should().BeFalse();
            result._server().Should().BeSameAs(server);
            result.Session.Should().BeSameAs(session);
        }
Example #2
0
        public static IServer _server(this ChannelReadWriteBinding obj)
        {
            var fieldInfo = typeof(ChannelReadWriteBinding).GetField("_server", BindingFlags.NonPublic | BindingFlags.Instance);

            return((IServer)fieldInfo.GetValue(obj));
        }
Example #3
0
        public static IChannelHandle _channel(this ChannelReadWriteBinding obj)
        {
            var fieldInfo = typeof(ChannelReadWriteBinding).GetField("_channel", BindingFlags.NonPublic | BindingFlags.Instance);

            return((IChannelHandle)fieldInfo.GetValue(obj));
        }
Example #4
0
        public static bool _disposed(this ChannelReadWriteBinding obj)
        {
            var fieldInfo = typeof(ChannelReadWriteBinding).GetField("_disposed", BindingFlags.NonPublic | BindingFlags.Instance);

            return((bool)fieldInfo.GetValue(obj));
        }
        public void Execute_unacknowledged_with_an_error_in_the_second_batch_and_ordered_is_true(
            [Values(false, true)]
            bool async)
        {
            RequireServer.Check();
            DropCollection();
            var requests = new[]
            {
                new InsertRequest(new BsonDocument { { "_id", 1 }}),
                new InsertRequest(new BsonDocument { { "_id", 2 }}),
                new InsertRequest(new BsonDocument { { "_id", 3 }}),
                new InsertRequest(new BsonDocument { { "_id", 1 }}), // will fail
                new InsertRequest(new BsonDocument { { "_id", 5 }}),
            };

            var subject = new BulkMixedWriteOperation(_collectionNamespace, requests, _messageEncoderSettings)
            {
                IsOrdered = true,
                MaxBatchCount = 2,
                WriteConcern = WriteConcern.Unacknowledged
            };

            using (var readWriteBinding = CoreTestConfiguration.GetReadWriteBinding())
            using (var channelSource = readWriteBinding.GetWriteChannelSource(CancellationToken.None))
            using (var channel = channelSource.GetChannel(CancellationToken.None))
            using (var channelBinding = new ChannelReadWriteBinding(channelSource.Server, channel))
            {
                var result = ExecuteOperation(subject, channelBinding, async);
                result.ProcessedRequests.Should().HaveCount(4);
                result.RequestCount.Should().Be(5);

                var list = ReadAllFromCollection(channelBinding);
                list.Should().HaveCount(3);
            }
        }