private IExecutionStrategy CreateExecutionStrategy(ExecutionStrategyType type) { IExecutionStrategy executionStrategy; switch (type) { case ExecutionStrategyType.CompileExecuteAndCheck: executionStrategy = new CompileExecuteAndCheckExecutionStrategy(GetCompilerPath); break; case ExecutionStrategyType.NodeJsPreprocessExecuteAndCheck: executionStrategy = new NodeJsPreprocessExecuteAndCheckExecutionStrategy(Settings.NodeJsExecutablePath); break; case ExecutionStrategyType.NodeJsPreprocessExecuteAndRunUnitTestsWithMocha: executionStrategy = new NodeJsPreprocessExecuteAndRunUnitTestsWithMochaExecutionStrategy( Settings.NodeJsExecutablePath, Settings.MochaModulePath, Settings.ChaiModulePath); break; case ExecutionStrategyType.IoJsPreprocessExecuteAndRunJsDomUnitTests: executionStrategy = new IoJsPreprocessExecuteAndRunJsDomUnitTestsExecutionStrategy( Settings.IoJsExecutablePath, Settings.MochaModulePath, Settings.ChaiModulePath, Settings.JsDomModulePath, Settings.JQueryModulePath, Settings.HandlebarsModulePath); break; case ExecutionStrategyType.JavaPreprocessCompileExecuteAndCheck: executionStrategy = new JavaPreprocessCompileExecuteAndCheckExecutionStrategy(Settings.JavaExecutablePath, GetCompilerPath); break; case ExecutionStrategyType.PhpCgiExecuteAndCheck: executionStrategy = new PhpCgiExecuteAndCheckExecutionStrategy(Settings.PhpCgiExecutablePath); break; case ExecutionStrategyType.PhpCliExecuteAndCheck: executionStrategy = new PhpCliExecuteAndCheckExecutionStrategy(Settings.PhpCliExecutablePath); break; case ExecutionStrategyType.DoNothing: executionStrategy = new DoNothingExecutionStrategy(); break; case ExecutionStrategyType.RemoteExecution: executionStrategy = new RemoteExecutionStrategy(); break; default: throw new ArgumentOutOfRangeException(); } return executionStrategy; }
private IExecutionStrategy CreateExecutionStrategy(ExecutionStrategyType type) { IExecutionStrategy executionStrategy; switch (type) { case ExecutionStrategyType.CompileExecuteAndCheck: executionStrategy = new CompileExecuteAndCheckExecutionStrategy(GetCompilerPath); break; case ExecutionStrategyType.NodeJsPreprocessExecuteAndCheck: executionStrategy = new NodeJsPreprocessExecuteAndCheckExecutionStrategy(Settings.NodeJsExecutablePath); break; default: throw new ArgumentOutOfRangeException(); } return executionStrategy; }