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);
 }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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");
        }
Exemple #11
0
        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);
 }