コード例 #1
0
        public async Task CreateConnectionAsync_NoBucket_DoesNotSelectBucket()
        {
            // Arrange

            var ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999);

            var connectionInitializer = new Mock <IConnectionInitializer>();

            connectionInitializer
            .SetupGet(m => m.EndPoint)
            .Returns(ipEndPoint);

            var connection = new Mock <IConnection>();

            var connectionFactory = new Mock <IConnectionFactory>();

            connectionFactory
            .Setup(m => m.CreateAndConnectAsync(ipEndPoint, It.IsAny <CancellationToken>()))
            .ReturnsAsync(connection.Object);

            var pool = new ConnectionPoolMock(connectionInitializer.Object, connectionFactory.Object);

            // Act

            var result = await pool.CreateConnectionAsyncPublic();

            // Assert

            connectionInitializer.Verify(
                m => m.SelectBucketAsync(It.IsAny <IConnection>(), It.IsAny <string>(), It.IsAny <CancellationToken>()),
                Times.Never);
        }
コード例 #2
0
        public async Task CreateConnectionAsync_ReturnsFromFactory_WithInitializerEndpoint()
        {
            // Arrange

            var ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999);

            var connectionInitializer = new Mock <IConnectionInitializer>();

            connectionInitializer
            .SetupGet(m => m.EndPoint)
            .Returns(ipEndPoint);

            var connection = new Mock <IConnection>();

            var connectionFactory = new Mock <IConnectionFactory>();

            connectionFactory
            .Setup(m => m.CreateAndConnectAsync(ipEndPoint, It.IsAny <CancellationToken>()))
            .ReturnsAsync(connection.Object);

            var pool = new ConnectionPoolMock(connectionInitializer.Object, connectionFactory.Object);

            // Act

            var result = await pool.CreateConnectionAsyncPublic();

            // Assert

            Assert.Equal(connection.Object, result);
        }
コード例 #3
0
        public async Task SelectBucketAsync_FreezesDuringOperation()
        {
            // Arrange

            ConnectionPoolMock pool = null;

            var ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999);

            var connectionInitializer = new Mock <IConnectionInitializer>();

            connectionInitializer
            .SetupGet(m => m.EndPoint)
            .Returns(ipEndPoint);
            connectionInitializer
            .Setup(m => m.SelectBucketAsync(It.IsAny <IConnection>(), "default", It.IsAny <CancellationToken>()))
            .Returns((IConnection connection, string bucket, CancellationToken _) =>
            {
                // ReSharper disable once AccessToModifiedClosure
                Assert.True(pool?.IsFrozen ?? false);
                return(Task.CompletedTask);
            });

            var connection1 = new Mock <IConnection>();
            var connection2 = new Mock <IConnection>();

            var connectionFactory = new Mock <IConnectionFactory>();

            pool = new ConnectionPoolMock(connectionInitializer.Object, connectionFactory.Object)
            {
                Connections =
                {
                    connection1.Object,
                    connection2.Object
                }
            };

            // Act

            await pool.SelectBucketAsync("default");

            // Assert

            Assert.All(new[] { connection1.Object, connection2.Object },
                       connection => connectionInitializer.Verify(
                           m => m.SelectBucketAsync(connection, "default", It.IsAny <CancellationToken>()),
                           Times.Once()));

            Assert.False(pool.IsFrozen);
        }
コード例 #4
0
        public async Task SelectBucketAsync_CallsForEachConnection()
        {
            // Arrange

            var ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999);

            var connectionInitializer = new Mock <IConnectionInitializer>();

            connectionInitializer
            .SetupGet(m => m.EndPoint)
            .Returns(ipEndPoint);

            var connection1 = new Mock <IConnection>();
            var connection2 = new Mock <IConnection>();

            var connectionFactory = new Mock <IConnectionFactory>();

            var pool = new ConnectionPoolMock(connectionInitializer.Object, connectionFactory.Object)
            {
                Connections =
                {
                    connection1.Object,
                    connection2.Object
                }
            };

            // Act

            await pool.SelectBucketAsync("default");

            // Assert

            Assert.All(new[] { connection1.Object, connection2.Object },
                       connection => connectionInitializer.Verify(
                           m => m.SelectBucketAsync(connection, "default", It.IsAny <CancellationToken>()),
                           Times.Once()));
        }
コード例 #5
0
 public Frozen(ConnectionPoolMock mock)
 {
     _mock = mock;
 }