package com.github.guikeller.jettyrunner.model; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.reflect.Whitebox; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.*; @RunWith(PowerMockRunner.class) public class JettyRunnerCommandLineTest { @Test public void testGetWebAppPath() { JettyRunnerConfiguration conf = Mockito.mock(JettyRunnerConfiguration.class); Mockito.when(conf.getWebappPaths()).thenReturn("/Test"); Mockito.when(conf.getWebappFolders()).thenReturn("C:/path/to/test/webapp"); JettyRunnerCommandLine runner = Whitebox.newInstance(JettyRunnerCommandLine.class); runner.setModel(conf); String webAppPath = runner.getWebAppPath(); assertNotNull(webAppPath); assertEquals(" --path /Test C:/path/to/test/webapp ", webAppPath); } @Test public void testGetClassesDirectory() { JettyRunnerConfiguration conf = Mockito.mock(JettyRunnerConfiguration.class); Mockito.when(conf.getClassesDirectories()).thenReturn("C:/path/to/test/bin"); JettyRunnerCommandLine runner = Whitebox.newInstance(JettyRunnerCommandLine.class); runner.setModel(conf); String classesDirectory = runner.getClassesDirectory(); assertNotNull(classesDirectory); assertEquals(" --classes C:/path/to/test/bin ",classesDirectory); } @Test public void testGetJettyXmlPaths() { JettyRunnerConfiguration conf = Mockito.mock(JettyRunnerConfiguration.class); Mockito.when(conf.getJettyXml()).thenReturn("C:/path/to/test/xml"); JettyRunnerCommandLine runner = Whitebox.newInstance(JettyRunnerCommandLine.class); runner.setModel(conf); String xmlPaths = runner.getJettyXmlPaths(); assertNotNull(xmlPaths); assertEquals(" --config C:/path/to/test/xml ",xmlPaths); } @Test public void testGetPort() { JettyRunnerConfiguration conf = Mockito.mock(JettyRunnerConfiguration.class); Mockito.when(conf.getRunningOnPort()).thenReturn("8080"); JettyRunnerCommandLine runner = Whitebox.newInstance(JettyRunnerCommandLine.class); runner.setModel(conf); String port = runner.getPort(); assertNotNull(port); assertEquals(" --port 8080 ",port); } @Test public void testGetVmArgs() { JettyRunnerConfiguration conf = Mockito.mock(JettyRunnerConfiguration.class); Mockito.when(conf.getVmArgs()).thenReturn("-Xms256m"); JettyRunnerCommandLine runner = Whitebox.newInstance(JettyRunnerCommandLine.class); runner.setModel(conf); String vmArgs = runner.getVmArgs(); assertNotNull(vmArgs); assertEquals("-Xms256m",vmArgs); } @Test public void testGetEnvVars() { Map<String, String> envVar = new HashMap<String, String>(0); envVar.put("KEY", "VALUE"); JettyRunnerConfiguration conf = Mockito.mock(JettyRunnerConfiguration.class); Mockito.when(conf.getEnvironmentVariables()).thenReturn(envVar); JettyRunnerCommandLine runner = Whitebox.newInstance(JettyRunnerCommandLine.class); runner.setModel(conf); Map<String, String> envVars = runner.getEnvVars(); assertNotNull(envVars); assertEquals(1, envVars.size()); assertEquals("KEY", envVars.keySet().iterator().next()); assertEquals("VALUE", envVars.values().iterator().next()); } @Test public void testIsPassParentEnvVars() { JettyRunnerConfiguration conf = Mockito.mock(JettyRunnerConfiguration.class); Mockito.when(conf.isPassParentEnvironmentVariables()).thenReturn(true, false); JettyRunnerCommandLine runner = Whitebox.newInstance(JettyRunnerCommandLine.class); runner.setModel(conf); boolean value1 = runner.isPassParentEnvironmentVariables(); assertTrue(value1); boolean value2 = runner.isPassParentEnvironmentVariables(); assertFalse(value2); } }