Author: elecharny Date: Wed Feb 25 23:15:03 2009 New Revision: 747958 URL: http://svn.apache.org/viewvc?rev=747958&view=rev Log: Added a test where we unbind and rebind on an acceptor
Modified: mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java Modified: mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java?rev=747958&r1=747957&r2=747958&view=diff ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java Wed Feb 25 23:15:03 2009 @@ -186,6 +186,51 @@ } } + public void testUnbindResume() throws Exception { + bind(true); + IoConnector connector = newConnector(); + IoSession session = null; + connector.setHandler(new IoHandlerAdapter()); + + ConnectFuture future = connector.connect(createSocketAddress(port)); + future.awaitUninterruptibly(); + session = future.getSession(); + Assert.assertTrue(session.isConnected()); + Assert.assertTrue(session.write(IoBuffer.allocate(1)).awaitUninterruptibly().isWritten()); + + // Wait for the server side session to be created. + Thread.sleep(500); + + Collection<IoSession> managedSession = acceptor.getManagedSessions().values(); + Assert.assertEquals(1, managedSession.size()); + + acceptor.unbind(); + + // Wait for the client side sessions to close. + Thread.sleep(500); + + Assert.assertEquals(0, managedSession.size()); + for (IoSession element : managedSession) { + Assert.assertFalse(element.isConnected()); + } + + // Rebind + bind(true); + + // Check again the connection + future = connector.connect(createSocketAddress(port)); + future.awaitUninterruptibly(); + session = future.getSession(); + Assert.assertTrue(session.isConnected()); + Assert.assertTrue(session.write(IoBuffer.allocate(1)).awaitUninterruptibly().isWritten()); + + // Wait for the server side session to be created. + Thread.sleep(500); + + managedSession = acceptor.getManagedSessions().values(); + Assert.assertEquals(1, managedSession.size()); + } + public void _testRegressively() throws IOException { setReuseAddress(true);