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);
        }
Example #2
0
        /// <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);
            }
        }