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