    @Test public void testSuccessfulHandshake() throws Exception {

        final FakeObjectChannel channel = new FakeObjectChannel(Arrays.asList(new Handshake(), new SocketTimeoutException()));

        SocketServerInstanceImpl instance = createInstance(channel);

        //no remote server is hooked up, so this will timeout
        ILogon logon = instance.getService(ILogon.class);
        try {
            logon.logon(new Properties());
            fail("Exception expected"); //$NON-NLS-1$
        } catch (SingleInstanceCommunicationException e) {
            assertTrue(e.getCause() instanceof TimeoutException);
        }
    }