public void Dispose_does_not_dispose_of_encapsulated_socket() { var mock = new MockSocket(); ISocket reclaimed = null; var socket = new PoolSocket(mock, (s) => reclaimed = s); socket.Dispose(); Assert.AreEqual(0, mock.DisposeCalled); }
public void Dispose_calls_reclaim_callback_with_encapsulated_socket() { var mock = new MockSocket(); ISocket reclaimed = null; var socket = new PoolSocket(mock, (s) => reclaimed = s); socket.Dispose(); Assert.AreSame(mock, reclaimed); }
public void Dispose_does_not_dispose_of_encapsulated_socket() { var mock = new MockSocket(); ISocket reclaimed = null; var socket = new PoolSocket(mock, (s) => reclaimed = s); socket.Dispose(); Assert.AreEqual(0, mock.DisposeCalled); }
public void Dispose_calls_reclaim_callback_with_encapsulated_socket() { var mock = new MockSocket(); ISocket reclaimed = null; var socket = new PoolSocket(mock, (s) => reclaimed = s); socket.Dispose(); Assert.AreSame(mock, reclaimed); }
public void Setup() { _mockSocket = new MockSocket { Connected = true }; _mockSocket.Expect("use default\r\n", "USING default\r\n"); _mockSocket.Expect("list-tubes-watched\r\n", "OK 16\r\n---\r\n- default\r\n\r\n"); _client = new BeanstalkClient(_mockSocket); }
public void Getting_multiple_pool_sockets_returns_different_instances() { 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(); var s2 = pool.GetSocket(); Assert.AreEqual(2, sockets.Count); }
public void Disposing_pool_socket_does_not_dispose_wrapped_socket() { 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(); Assert.AreEqual(1, sockets.Count); s1.Dispose(); Assert.IsFalse(s1.Connected); Assert.IsTrue(sockets[0].Connected); }
public void Disposing_pool_socket_returns_it_to_the_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(); Assert.AreEqual(1, sockets.Count); s1.Dispose(); var s2 = pool.GetSocket(); Assert.AreEqual(1, sockets.Count); }
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); }
public void Idle_available_socket_is_collected_at_cleanup() { var sockets = new List <MockSocket>(); Func <ISocket> socketFactory = () => { var socket = new MockSocket(); sockets.Add(socket); return(socket); }; var pool = new ConnectionPool(socketFactory) { CleanupInterval = TimeSpan.FromSeconds(1) }; pool.GetSocket().Dispose(); Assert.AreEqual(0, sockets[0].DisposeCalled); Wait(() => sockets[0].DisposeCalled > 0, TimeSpan.FromSeconds(5), "socket didn't get cleaned up"); }
public void Disconnected_socket_in_available_pool_is_disposed_on_attempted_reuse() { 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(); s1.Dispose(); Assert.AreEqual(1, sockets.Count); sockets[0].Dispose(); var s2 = pool.GetSocket(); Assert.AreEqual(2, sockets.Count); }
public void Disposing_pool_socket_returns_it_to_the_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(); Assert.AreEqual(1, sockets.Count); s1.Dispose(); var s2 = pool.GetSocket(); Assert.AreEqual(1, sockets.Count); }
public void Idle_available_socket_is_collected_at_cleanup() { var sockets = new List<MockSocket>(); Func<ISocket> socketFactory = () => { var socket = new MockSocket(); sockets.Add(socket); return socket; }; var pool = new ConnectionPool(socketFactory) { CleanupInterval = TimeSpan.FromSeconds(1) }; pool.GetSocket().Dispose(); Assert.AreEqual(0, sockets[0].DisposeCalled); Wait(() => sockets[0].DisposeCalled > 0, TimeSpan.FromSeconds(5), "socket didn't get cleaned up"); }
public void Disconnected_socket_in_available_pool_is_disposed_on_attempted_reuse() { 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(); s1.Dispose(); Assert.AreEqual(1, sockets.Count); sockets[0].Dispose(); var s2 = pool.GetSocket(); Assert.AreEqual(2, sockets.Count); }
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); }
public void Getting_multiple_pool_sockets_returns_different_instances() { 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(); var s2 = pool.GetSocket(); Assert.AreEqual(2, sockets.Count); }
public void Disposing_pool_socket_does_not_dispose_wrapped_socket() { 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(); Assert.AreEqual(1, sockets.Count); s1.Dispose(); Assert.IsFalse(s1.Connected); Assert.IsTrue(sockets[0].Connected); }