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(); }
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; }