public void ShouldReturnNullWhenEmptyArgumentListIsGiven()
        {
            // arrange
            string[] arguments = new string[1];

            // act
            string result = ArgumentParsingHelper.GetArgumentValueFromArguments(arguments, "parameter:");

            // assert
            Assert.That(result, Is.Null);
        }
        public void ShouldThrowNullReferenceExceptionWhenGivenKeyIsNotFound()
        {
            // arrange
            string[] arguments = new string[1];
            arguments[0] = "notgiven: valueToReturn";

            // act
            string result = ArgumentParsingHelper.GetArgumentValueFromArguments(arguments, "parameter:");

            // assert
            Assert.That(result, Is.Null);
        }
        public void ShouldReturnValueAfterGivenOptionFromStringArrayWithOneItem()
        {
            // arrange
            string[] arguments = new string[1];
            arguments[0] = "parameter: valueToReturn";

            // act
            string result = ArgumentParsingHelper.GetArgumentValueFromArguments(arguments, "parameter:");

            // assert
            Assert.That(result, Is.EqualTo(" valueToReturn"));
        }
Ejemplo n.º 4
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);
            }
        }