final TestSession session = new TestSession(connector, ADDRESS);
MockControl chainControl = MockControl
.createStrictControl(IoFilterChain.class);
IoFilterChain chain = (IoFilterChain) chainControl.getMock();
session.setFilterChain(chain);
MockControl listenerControl = MockControl
.createStrictControl(IoServiceListener.class);
IoServiceListener listener = (IoServiceListener) listenerControl
.getMock();
// Creating a session should activate a service automatically.
listener.serviceActivated(connector, ADDRESS, null, null);
listener.sessionCreated(session);
chain.fireSessionCreated(session);
chain.fireSessionOpened(session);
listenerControl.replay();
chainControl.replay();
support.add(listener);
support.fireSessionCreated(session);
listenerControl.verify();
chainControl.verify();
// Destroying a session should deactivate a service automatically.
listenerControl.reset();
chainControl.reset();
listener.sessionDestroyed(session);
chain.fireSessionClosed(session);
listener.serviceDeactivated(connector, ADDRESS, null, null);
listenerControl.replay();
chainControl.replay();