You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2009/02/26 00:15:03 UTC

svn commit: r747958 - /mina/trunk/core/src/test/java/org/apache/mina/transport/AbstractBindTest.java

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