package com.github.linsolas.casperjsrunner; import static com.github.linsolas.casperjsrunner.toolchain.CasperjsToolchain.KEY_CASPERJS_TYPE; import static java.lang.System.setProperty; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.logging.Log; import org.apache.maven.toolchain.Toolchain; import org.apache.maven.toolchain.ToolchainManager; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; public class CasperJsRuntimeFinderTest { @Mock private ToolchainManager toolchainManager; @Mock private Toolchain toolchain; @Mock private MavenSession session; @Before public void initializeMocks() { initMocks(this); LogUtils.setLog(mock(Log.class), false); } @Test public void testFindCasperJsRuntimeFromToolchain() { when(toolchainManager.getToolchainFromBuildContext(KEY_CASPERJS_TYPE, session)).thenReturn(toolchain); when(toolchain.findTool(KEY_CASPERJS_TYPE)).thenReturn("casperjs runtime from toolchain"); assertEquals("casperjs runtime from toolchain", CasperJsRuntimeFinder.findCasperRuntime(toolchainManager, session, null)); } @Test public void testFindCasperJsRuntimeFromToolchainButOverriden() { when(toolchainManager.getToolchainFromBuildContext(KEY_CASPERJS_TYPE, session)).thenReturn(toolchain); when(toolchain.findTool(KEY_CASPERJS_TYPE)).thenReturn("casperjs runtime from toolchain"); assertEquals("casperjs runtime from parameter", CasperJsRuntimeFinder.findCasperRuntime( toolchainManager, session, "casperjs runtime from parameter")); } @Test public void testFindCasperJsRuntimeFromParameter() { when(toolchainManager.getToolchainFromBuildContext(KEY_CASPERJS_TYPE, session)).thenReturn(null); assertEquals("casperjs runtime from parameter", CasperJsRuntimeFinder.findCasperRuntime( toolchainManager, session, "casperjs runtime from parameter")); } @Test public void testFindCasperJsRuntimeFromDefault() { when(toolchainManager.getToolchainFromBuildContext(KEY_CASPERJS_TYPE, session)).thenReturn(null); setProperty("os.name", "Linux"); assertEquals("casperjs", CasperJsRuntimeFinder.findCasperRuntime(toolchainManager, session, null)); } @Test public void testFindCasperJsRuntimeFromDefaultOnWindows() { when(toolchainManager.getToolchainFromBuildContext(KEY_CASPERJS_TYPE, session)).thenReturn(null); setProperty("os.name", "Windows"); assertEquals("casperjs.bat", CasperJsRuntimeFinder.findCasperRuntime(toolchainManager, session, null)); } }