### Question:
ApplicationLifecycleController { public void startApplication(final int servicePort, final String bindAddress, final int workerThreads) throws IOException { logger.info("Starting application"); logger.info("Starting system event message listener"); systemEventMessageListener.start(); logger.info("Starting remaining message listeners"); messageListenersExcept(systemEventMessageListener).stream().forEach(MessageListener::start); restServer.start(servicePort, bindAddress, workerThreads); logger.info("Application started"); } ApplicationLifecycleController(final RestServer restServer, final MessageListener systemEventMessageListener,
            final Collection<MessageListener> messageListeners); void startApplication(final int servicePort, final String bindAddress, final int workerThreads); synchronized void shutdownApplication();  }### Answer:
@Test public void shouldStartApplication_withServicePortStatusPortAndBindAddress() throws Exception { final int servicePort = randomInt(16384); final String bindAddress = randomString(); final int workerThreads = Randoms.randomIntInRange(2, 16); applicationLifecycleController.startApplication(servicePort, bindAddress, workerThreads); final InOrder inOrder = inOrder(mockRestServer, mockSystemEventMessageListener, mockOtherMessageListener); inOrder.verify(mockSystemEventMessageListener).start(); inOrder.verify(mockOtherMessageListener).start(); verifyNoMoreInteractions(mockSystemEventMessageListener, mockOtherMessageListener); inOrder.verify(mockRestServer).start(servicePort, bindAddress, workerThreads); }