public void ShouldCorrectlySetRunningMode(GenValMode genValMode) { var parameters = new ArgumentParsingTarget { RegistrationFile = genValMode == GenValMode.Generate ? new FileInfo("registration.json") : null, ResponseFile = genValMode == GenValMode.Validate ? new FileInfo("response.json") : null, AnswerFile = genValMode == GenValMode.Validate ? new FileInfo("answer.json") : null }; var result = RunningOptionsHelper.DetermineRunningMode(parameters); Assert.AreEqual(genValMode, result); }
/// <summary> /// Entry point into application /// </summary> /// <param name="args"> /// Arguments used within app run, /// see <see cref="ArgumentParsingTarget"/> for details. /// </param> /// <returns></returns> public static async Task <int> Main(string[] args) { var argumentParser = new ArgumentParsingHelper(); try { var parsedParameters = argumentParser.Parse(args); var runningOptions = RunningOptionsHelper.GetRunningOptions(parsedParameters); ConfigureLogging(parsedParameters, runningOptions); Logger.Info($"Running in {runningOptions.GenValMode} mode for {EnumHelpers.GetEnumDescriptionFromEnum(runningOptions.AlgoMode)}"); // Get the IOC container for the algo AutofacConfig.IoCConfiguration(ServiceProvider, runningOptions.AlgoMode); using (var scope = AutofacConfig.GetContainer().BeginLifetimeScope()) { var genValRunner = new GenValRunner(scope); return(await genValRunner.Run(parsedParameters, runningOptions.GenValMode)); } } catch (CommandLineException ex) { var errorMessage = $"ERROR: {ex.Message}"; Console.WriteLine(errorMessage); Console.WriteLine(ex.StackTrace); Logger.Error($"Status Code: {StatusCode.CommandLineError}"); Logger.Error(errorMessage); argumentParser.ShowUsage(); return((int)StatusCode.CommandLineError); } catch (AlgoModeRevisionException ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Logger.Fatal(ex); return((int)StatusCode.ModeError); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Logger.Fatal(ex); return((int)StatusCode.Exception); } }