@Test public void shouldGetWebServerAfterServerStart() { ControllerImpl controllerImpl = new ControllerImpl(serverConfigFactory, serverSocketFactory, serverGui); assertThat(controllerImpl.getWebServer(), is(nullValue())); controllerImpl.start(); assertThat(controllerImpl.getWebServer(), is(not(nullValue()))); assertThat(controllerImpl.getWebServer().isRunning(), is(true)); }
@Test public void shouldNotStartServerUnableToBind() throws IOException { ServerSocket serverSocket = mock(ServerSocket.class); doThrow(new IOException()).when(serverSocket).bind(any(SocketAddress.class)); ServerConfig serverConfig = getDefaultServerConfig(); WebServer webServer = new WebServer(serverSocket, serverConfig); assertThat(webServer.startServer(), is(false)); assertThat(webServer.isRunning(), is(false)); }
@Test public void shouldStopProperly() { ControllerImpl controllerImpl = new ControllerImpl(serverConfigFactory, serverSocketFactory, serverGui); controllerImpl.start(); assertThat(controllerImpl.getWebServer(), is(not(nullValue()))); WebServer webServer = controllerImpl.getWebServer(); controllerImpl.stop(); assertThat(controllerImpl.getWebServer(), is(nullValue())); assertThat(webServer.isRunning(), is(false)); verify(serverGui, times(1)).stop(); }
@Test public void shouldNotStartServerOnTempPathNonWritable() throws IOException { ServerSocket serverSocket = mock(ServerSocket.class); File file = new File("/proc/"); assertThat(file.exists(), is(true)); assertThat(file.canWrite(), is(false)); ServerConfig serverConfig = getDefaultServerConfig(); when(serverConfig.getTempPath()).thenReturn(file.getAbsolutePath()); WebServer webServer = new WebServer(serverSocket, serverConfig); assertThat(webServer.startServer(), is(false)); assertThat(webServer.isRunning(), is(false)); }
@Test public void shouldNotStartServerOnTempPathDoesNotExists() throws IOException { ServerSocket serverSocket = mock(ServerSocket.class); File file = new File("/proc/someprotectedresource"); assertThat(file.exists(), is(false)); ServerConfig serverConfig = getDefaultServerConfig(); when(serverConfig.getTempPath()).thenReturn(file.getAbsolutePath()); WebServer webServer = new WebServer(serverSocket, serverConfig); assertThat(webServer.startServer(), is(false)); assertThat(webServer.isRunning(), is(false)); }
@Test public void shouldNotStartServerOnTooLessThreadsAvailable() throws IOException { ServerSocket serverSocket = mock(ServerSocket.class); ServerConfig serverConfig = getDefaultServerConfig(); when(serverConfig.getMaxServerThreads()).thenReturn(0); WebServer webServer = new WebServer(serverSocket, serverConfig); assertThat(webServer.startServer(), is(false)); assertThat(webServer.isRunning(), is(false)); }
@Test public void shouldStartServerIfEverythingIsOk() throws IOException { ServerSocket serverSocket = mock(ServerSocket.class); ServerConfig serverConfig = getDefaultServerConfig(); WebServer webServer = new WebServer(serverSocket, serverConfig); assertThat(webServer.startServer(), is(true)); assertThat(webServer.isRunning(), is(true)); assertThat(webServer.getServerConfig(), is(serverConfig)); webServer.stopServer(); assertThat(webServer.isRunning(), is(false)); }
/** * Returns current service state. * * @return */ public ServiceStateDTO getServiceState() { String accessUrl = "Initializing"; if (controller != null && controller.getWebServer() != null) { accessUrl = "http://" + getLocalIpAddress() + getPort(controller.getWebServer().getServerConfig().getListenPort()) + '/'; } boolean isWebserverStarted = controller != null && controller.getWebServer() != null && controller.getWebServer().isRunning(); return new ServiceStateDTO(isServiceStarted, isWebserverStarted, accessUrl); }