/** * */ package org.minnal.core.server; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.testng.Assert.assertEquals; import java.util.Arrays; import org.minnal.core.Container; import org.minnal.core.ContainerMessageObserver; import org.minnal.core.Router; import org.minnal.core.config.ConnectorConfiguration; import org.minnal.core.config.ConnectorConfiguration.Scheme; import org.minnal.core.config.ContainerConfiguration; import org.minnal.core.config.SSLConfiguration; import org.minnal.core.config.ServerConfiguration; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; /** * @author ganeshs * */ public class ServerTest { private Container container; private HttpConnector httpConnector; private HttpsConnector httpsConnector; private Router router; private Server server; private ContainerMessageObserver messageObserver; @BeforeMethod public void setup() { server = spy(new Server()); container = mock(Container.class); messageObserver = mock(ContainerMessageObserver.class); when(container.getMessageObserver()).thenReturn(messageObserver); router = mock(Router.class); when(container.getRouter()).thenReturn(router); ContainerConfiguration configuration = mock(ContainerConfiguration.class); ServerConfiguration serverConfiguration = mock(ServerConfiguration.class); ConnectorConfiguration connectorConfig1 = mock(ConnectorConfiguration.class); when(connectorConfig1.getScheme()).thenReturn(Scheme.http); ConnectorConfiguration connectorConfig2 = mock(ConnectorConfiguration.class); when(connectorConfig2.getScheme()).thenReturn(Scheme.https); when(connectorConfig2.getSslConfiguration()).thenReturn(mock(SSLConfiguration.class)); when(serverConfiguration.getConnectorConfigurations()).thenReturn(Arrays.asList(connectorConfig1, connectorConfig2)); when(configuration.getServerConfiguration()).thenReturn(serverConfiguration); when(container.getConfiguration()).thenReturn(configuration); httpConnector = mock(HttpConnector.class); httpsConnector = mock(HttpsConnector.class); doReturn(httpConnector).when(server).createHttpConnector(connectorConfig1, router); doReturn(httpsConnector).when(server).createHttpsConnector(connectorConfig2, router); } @Test public void shouldInitializeServer() { server.init(container, null); verify(httpConnector).registerListener(messageObserver); verify(httpConnector).initialize(); verify(httpsConnector).registerListener(messageObserver); verify(httpsConnector).initialize(); } @Test public void shouldStartAllConnectors() { server.init(container, null); server.start(); verify(httpConnector).start(); verify(httpsConnector).start(); } @Test public void shouldStopAllConnectors() { server.init(container, null); server.stop(); verify(httpConnector).stop(); verify(httpsConnector).stop(); } @Test public void shouldGetDefaultOrder() { assertEquals(server.getOrder(), Integer.MAX_VALUE); } }