### Question:
FIXClient implements IInitiatorService { @Override public void init( IServiceContext serviceContext, IServiceMonitor serviceMonitor, IServiceHandler handler, IServiceSettings settings, ServiceName serviceName) { logger.info("init Service {}", this); try { changeStatus(ServiceStatus.INITIALIZING, "Service initializing", null); baseInit(serviceContext, serviceMonitor, handler, settings, serviceName); initFixApplication(); changeStatus(ServiceStatus.INITIALIZED, "Service initialized", null); } catch (Exception e) { changeStatus(ServiceStatus.ERROR, "Service initializing error", e); throw new ServiceException(e); } logger.info("Service {} initialization finished", this); } FIXClient(); @Override void dispose(); @Override void init(
            IServiceContext serviceContext,
            IServiceMonitor serviceMonitor,
            IServiceHandler handler,
            IServiceSettings settings,
            ServiceName serviceName); @Override void start(); synchronized void logon(); @Override IServiceHandler getServiceHandler(); @Override ISession getSession(); @Override String getName(); @Override ServiceName getServiceName(); @Override ServiceStatus getStatus(); void disconnect(); void forcedDisconnect(); @Override void setServiceHandler(IServiceHandler handler); @Override IServiceSettings getSettings(); @Override String toString(); SocketInitiator getInitiator(); boolean isPerformance(); @Override void connect(); @Override IMessage receive(IActionContext actionContext, IMessage msg); DirtyQFJIMessageConverter getConverter(); List<IMessage> retrieve(long beginSeq, long endSeq); static final String ResetSeqNumFlag; static final String SUPPORTS_MICROSECOND_TIMESTAMPS; static final Integer SUPPORTS_MICROSECOND_TIMESTAMPS_TAG; }### Answer:
@Ignore @Test public void testInit() throws ConfigError, InterruptedException { FIXApplication application = new FIXApplication(); application.init(serviceContext, new ApplicationContext(null, new CollectorServiceHandler(), new FIXClientSettings(), new SessionSettings(), new FixMessageHelper(), null, null), ServiceName.parse("fix")); SessionSettings settings = new SessionSettings(); SessionID sessionID = new SessionID("FIXT.1.1", "BANZAI1", "EXEC1"); settings.setString(sessionID, "SocketConnectPort", "777"); settings.setString(sessionID, "SessionName", "connection1"); settings.setString(sessionID, "FileStorePath", "examples/target/data/banzai"); settings.setString(sessionID, "FileLogPath", "examples/target/data/banzai/logs"); settings.setString(sessionID, "FileLogHeartbeats", "Y"); settings.setString(sessionID, "ConnectionType", "initiator"); settings.setString(sessionID, "SocketConnectHost", "172.27.72.67"); settings.setString(sessionID, "StartTime", "00:00:00"); settings.setString(sessionID, "EndTime", "00:00:00"); settings.setString(sessionID, "HeartBtInt", "30"); settings.setString(sessionID, "ReconnectInterval", "1"); settings.setString(sessionID, "CheckLatency", "N"); settings.setString(sessionID, "DefaultApplVerID", "FIX.5.0"); MessageStoreFactory messageStoreFactory = new FileStoreFactory(settings); LogFactory logFactory = new FileLogFactory(settings); MessageFactory messageFactory = new DefaultMessageFactory(); SocketInitiator initiator = new SocketInitiator(application, messageStoreFactory, settings, logFactory, messageFactory, null); initiator.start(); FIXSession iSession = new FIXSession("fix", sessionID, null, null, null); application.addSessionId(sessionID, iSession); Session.lookupSession(sessionID).logon(); Thread.sleep(10000); }