package org.apache.mina.session; import java.net.SocketAddress; import junit.framework.Assert; import org.apache.mina.api.IoFuture; import org.apache.mina.api.IoService; import org.apache.mina.api.IoSessionConfig; import org.junit.Test; public class AbstractIoSessionTest { private static final class DummySession extends AbstractIoSession { private DummySession(IoService service) { super(service, null); } @Override public IoFuture<Void> close(boolean immediately) { return null; } @Override public IoSessionConfig getConfig() { return null; } @Override public SocketAddress getLocalAddress() { return null; } @Override public SocketAddress getRemoteAddress() { return null; } @Override public boolean isClosing() { return false; } @Override public boolean isConnected() { return false; } @Override public boolean isReadSuspended() { return false; } @Override public boolean isWriteSuspended() { return false; } @Override public void resumeRead() { } @Override public void resumeWrite() { } @Override public void suspendRead() { } @Override public void suspendWrite() { } } @Test public void testGetId() { Assert.assertNotSame((new DummySession(null)).getId(), (new DummySession(null)).getId()); } @Test public void testCreationTime() { long before = System.currentTimeMillis(); long creation = (new DummySession(null)).getCreationTime(); long after = System.currentTimeMillis(); Assert.assertTrue(creation <= after); Assert.assertTrue(creation >= before); } @Test public void testAttachment() { AbstractIoSession aio = new DummySession(null); String value = "value"; Assert.assertNull(aio.getAttribute("test")); Assert.assertEquals(null, aio.setAttribute("test", value)); Assert.assertTrue(aio.containsAttribute("test")); Assert.assertEquals(aio.getAttributeNames().size(), 1); Assert.assertEquals(value, aio.setAttribute("test", value)); Assert.assertEquals(aio.getAttributeNames().size(), 1); Assert.assertTrue(aio.containsAttribute("test")); Assert.assertEquals(value, aio.getAttribute("test")); Assert.assertEquals(value, aio.removeAttribute("test")); Assert.assertEquals(aio.getAttributeNames().size(), 0); Assert.assertFalse(aio.containsAttribute("test")); Assert.assertEquals(null, aio.getAttribute("test")); Assert.assertNull(aio.getService()); } }