public void ForSetup_AsOptional_SetsDefaultTranslator()
        {
            var parser = new CommandLineParser <TestOptions>();
            var info   = new OptionInfo("Path", typeof(string));
            var setup  = new OptionSetup <TestOptions, string>(parser, info);

            setup.AsOptional("Path to files", "-p", "--path");

            info.TranslatorType.Name.ShouldContain("DefaultTranslator");
        }
        public void ForSetup_AsOptional_SetsIsOptionalTrue()
        {
            var parser = new CommandLineParser <TestOptions>();
            var info   = new OptionInfo("Path", typeof(string));
            var setup  = new OptionSetup <TestOptions, string>(parser, info);

            setup.AsOptional("Path to files", "-p", "--path");

            info.IsOptional.ShouldBeTrue();
        }
        public void ForSetupWithDefault_AsOptional_SetsDefaultValue()
        {
            var parser = new CommandLineParser <TestOptions>();
            var info   = new OptionInfo("Path", typeof(string));
            var setup  = new OptionSetup <TestOptions, string>(parser, info);

            setup.AsOptional("Path to files", "-p", "--path", @"c:\temp");

            info.DefaultValue.ShouldBe(@"c:\temp");
        }
        public void ForSetupWithTranslator_AsRequired_SetsTranslator()
        {
            var parser = new CommandLineParser <TestOptions>();
            var info   = new OptionInfo("Loggers", typeof(string[]));
            var setup  = new OptionSetup <TestOptions, string[]>(parser, info);

            setup.AsRequired <TestLoggerListTranslator>("List of loggers", "-l", "--loggers");

            info.TranslatorType.Name.ShouldContain("TestLoggerListTranslator");
        }
        public void ForSetup_AsRequired_SetsDefaultValueNull()
        {
            var parser = new CommandLineParser <TestOptions>();
            var info   = new OptionInfo("Path", typeof(string));
            var setup  = new OptionSetup <TestOptions, string>(parser, info);

            setup.AsRequired("Path to files", "-p", "--path");

            info.DefaultValue.ShouldBeNull();
        }
        public void InvalidOptions_AsOptional_ThrowsException(string shortOption, string longOption)
        {
            var parser = new CommandLineParser <TestOptions>();
            var info   = new OptionInfo("Path", typeof(string));
            var setup  = new OptionSetup <TestOptions, string>(parser, info);

            var error = Should.Throw <ArgumentException>(
                () => setup.AsOptional("Path to files", shortOption, longOption));

            error.Message.ShouldContain("You must provide either a short and/or long option.");
        }