コード例 #1
0
        public async Task MultipleConnectionForEndPointWorks()
        {
            var factory    = new TestConnectionFactory();
            var pool       = new ConnectionPoolingFactory(factory);
            var endpoint   = new HttpEndPoint(HttpConnectionKind.Http, "127.0.0.1", 80, "", new Uri("http://localhost"), 2);
            var connection = await pool.ConnectAsync(endpoint);

            Assert.NotNull(connection);

            // No conneciton available, will wait for one to be created.
            var connection2 = await pool.ConnectAsync(endpoint);

            // return original to pool
            await connection.DisposeAsync();

            await connection2.DisposeAsync();
        }
コード例 #2
0
        public async Task HttpEndPointEqualsWorks()
        {
            var factory    = new TestConnectionFactory();
            var pool       = new ConnectionPoolingFactory(factory);
            var endpoint1  = new HttpEndPoint(HttpConnectionKind.Http, "127.0.0.1", 80, "", new Uri("http://localhost"), 1);
            var endpoint2  = new HttpEndPoint(HttpConnectionKind.Http, "127.0.0.1", 80, "", new Uri("http://localhost"), 1);
            var connection = await pool.ConnectAsync(endpoint1);

            Assert.NotNull(connection);

            // No conneciton available, will wait for one to be created.
            var connectionTask = pool.ConnectAsync(endpoint2);

            Assert.False(connectionTask.IsCompleted);

            // return original to pool
            await connection.DisposeAsync();

            // Await should allow the connection again.
            var connection2 = await connectionTask;
        }