public void Disconnected_sockets_are_removed_from_pool() {
var sockets = new List<MockSocket>();
Func<ISocket> socketFactory = () => {
var socket = new MockSocket();
sockets.Add(socket);
return socket;
};
var pool = new ConnectionPool(socketFactory);
var s1 = pool.GetSocket();
sockets[0].Dispose();
s1.Dispose();
var s2 = pool.GetSocket();
Assert.AreEqual(2, sockets.Count);
}