private void doLogonTest(String keyStoreName, String keyStorePassword) throws InterruptedException, ConfigError { ServerThread serverThread = new ServerThread(keyStoreName, keyStorePassword); try { serverThread.setDaemon(true); serverThread.start(); serverThread.waitForInitialization(); SessionID clientSessionID = new SessionID(FixVersions.BEGINSTRING_FIX42, "TW", "ISLD"); SessionSettings settings = getClientSessionSettings(clientSessionID); ClientApplication clientApplication = new ClientApplication(); ThreadedSocketInitiator initiator = new ThreadedSocketInitiator( clientApplication, new MemoryStoreFactory(), settings, new DefaultMessageFactory()); try { log.info("Do login"); clientApplication.setUpLogonExpectation(); initiator.start(); Session clientSession = Session.lookupSession(clientSessionID); assertLoggedOn(clientApplication, clientSession); } finally { initiator.stop(); } } finally { serverThread.interrupt(); serverThread.join(); } }
public void testLogonWithBadCertificate() throws Exception { ServerThread serverThread = new ServerThread("nonexistent", "pwd"); try { serverThread.setDaemon(true); serverThread.start(); serverThread.waitForInitialization(); SessionID clientSessionID = new SessionID(FixVersions.BEGINSTRING_FIX42, "TW", "ISLD"); SessionSettings settings = getClientSessionSettings(clientSessionID); ClientApplication clientApplication = new ClientApplication(); ThreadedSocketInitiator initiator = new ThreadedSocketInitiator( clientApplication, new MemoryStoreFactory(), settings, new DefaultMessageFactory()); final CountDownLatch exceptionCaught = new CountDownLatch(1); initiator.setIoFilterChainBuilder( new IoFilterChainBuilder() { public void buildFilterChain(IoFilterChain chain) throws Exception { chain.addLast( "ExceptionCatcher", new IoFilterAdapter() { public void exceptionCaught( NextFilter nextFilter, IoSession session, Throwable cause) throws Exception { log.info("MINA exception: " + cause.getMessage()); exceptionCaught.countDown(); } }); } }); try { log.info("Do login"); initiator.start(); assertTrue("no exception thrown", exceptionCaught.await(5, TimeUnit.SECONDS)); } finally { initiator.stop(); } } finally { serverThread.interrupt(); serverThread.join(); } }