@Test public void testConnectorActivation() throws Exception { IoConnector connector = EasyMock.createStrictMock(IoConnector.class); IoServiceListenerSupport support = new IoServiceListenerSupport(connector); final DummySession session = new DummySession(); session.setService(connector); session.setRemoteAddress(ADDRESS); IoHandler handler = EasyMock.createStrictMock(IoHandler.class); session.setHandler(handler); IoServiceListener listener = EasyMock.createStrictMock(IoServiceListener.class); // Creating a session should activate a service automatically. listener.serviceActivated(connector); listener.sessionCreated(session); handler.sessionCreated(session); handler.sessionOpened(session); EasyMock.replay(listener); EasyMock.replay(handler); support.add(listener); support.fireSessionCreated(session); EasyMock.verify(listener); EasyMock.verify(handler); // Destroying a session should deactivate a service automatically. EasyMock.reset(listener); EasyMock.reset(handler); listener.sessionDestroyed(session); handler.sessionClosed(session); listener.serviceDeactivated(connector); EasyMock.replay(listener); EasyMock.replay(handler); support.fireSessionDestroyed(session); EasyMock.verify(listener); EasyMock.verify(handler); assertEquals(0, support.getManagedSessions().size()); assertNull(support.getManagedSessions().get(session.getId())); }