Beispiel #1
0
        public void Parse_CustomFormatSettings_ShouldPassCustomFormatToValueParser()
        {
            var valueParser = A.Fake <ValueParser>(ob => ob.CallsBaseMethods());
            var parser      = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.ValueParser    = valueParser;
            parser.NumberStyles   = NumberStyles.Currency;
            parser.FormatProvider = new CultureInfo("de-DE");

            var tokens = new List <Token>
            {
                new OptionToken("int64s")
                {
                    OptionValues = { "123" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            Int64 int64;

            A.CallTo(() => valueParser.TryParseInt64("123", NumberStyles.Currency, new CultureInfo("de-DE"), out int64)).MustHaveHappened();
        }
Beispiel #2
0
        public void GetHelpText_ShouldReturnSpecifiedHelpText()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.OptionHelp = "Help text for option int64s.";

            parser.GetHelpText().Should().Be("Help text for option int64s.");
        }
Beispiel #3
0
        public void Parse_OptionNotPresent_ShouldAssignDefaultValueToTargetProperty()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.OptionDefaultValue = new List <Int64> {
                123, 456
            };

            var tokens                  = new List <Token>();
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Int64s.Should().BeEquivalentTo(123L, 456L);
        }
Beispiel #4
0
        public void Parse_RequiredOptionMissing_ShouldAddError()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.IsOptionRequired = true;

            var tokens      = new List <Token>();
            var parseResult = new ParseResult();

            parseResult.CommandOptions = new DataTypesCommandOptions();

            parser.Parse(tokens, parseResult);

            parseResult.HasErrors.Should().BeTrue();
            parseResult.Errors.Should().HaveCount(1);
            parseResult.Errors[0].Should().BeOfType <OptionMissingError>();

            var error = (OptionMissingError)parseResult.Errors[0];

            error.OptionName.Should().Be("int64s");
            error.GetErrorMessage().Should().Be("The option --int64s is required.");
        }
Beispiel #5
0
        public void Parse_ValidValue_ShouldParseAndAssignValueToTargetProperty()
        {
            var valueParser = A.Fake <ValueParser>();
            var parser      = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.ValueParser = valueParser;

            var tokens = new List <Token>
            {
                new OptionToken("int64s")
                {
                    OptionValues = { "123", "456" }
                }
            };
            var parseResult             = new ParseResult();
            var dataTypesCommandOptions = new DataTypesCommandOptions();

            parseResult.CommandOptions = dataTypesCommandOptions;

            Int64 int64;

            A.CallTo(() => valueParser.TryParseInt64("123", NumberStyles.Any, new CultureInfo("en-US"), out int64))
            .Returns(true)
            .AssignsOutAndRefParameters(123L);

            A.CallTo(() => valueParser.TryParseInt64("456", NumberStyles.Any, new CultureInfo("en-US"), out int64))
            .Returns(true)
            .AssignsOutAndRefParameters(456L);

            parser.Parse(tokens, parseResult);

            dataTypesCommandOptions.Int64s.Should().BeEquivalentTo(123M, 456M);

            A.CallTo(() => valueParser.TryParseInt64("123", NumberStyles.Any, new CultureInfo("en-US"), out int64)).MustHaveHappened();
            A.CallTo(() => valueParser.TryParseInt64("456", NumberStyles.Any, new CultureInfo("en-US"), out int64)).MustHaveHappened();
        }
Beispiel #6
0
        public void Parse_OptionValueMissing_ShouldAddError()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            var tokens = new List <Token>
            {
                new OptionToken("int64s")
            };

            var parseResult = new ParseResult();

            parseResult.CommandOptions = new DataTypesCommandOptions();

            parser.Parse(tokens, parseResult);

            parseResult.HasErrors.Should().BeTrue();
            parseResult.Errors.Should().HaveCount(1);
            parseResult.Errors[0].Should().BeOfType <OptionValueMissingError>();

            var error = (OptionValueMissingError)parseResult.Errors[0];

            error.OptionName.Should().Be("int64s");
            error.GetErrorMessage().Should().Be("The option --int64s requires a value, but no value was specified.");
        }
Beispiel #7
0
        public void Parse_InvalidValue_ShouldAddError()
        {
            var valueParser = A.Fake <ValueParser>();
            var parser      = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.ValueParser = valueParser;

            var tokens = new List <Token>
            {
                new OptionToken("int64s")
                {
                    OptionValues = { "NotAInt64" }
                }
            };
            var parseResult = new ParseResult();

            parseResult.CommandOptions = new DataTypesCommandOptions();

            Int64 int64;

            A.CallTo(() => valueParser.TryParseInt64("NotAInt64", NumberStyles.None, new CultureInfo("en-US"), out int64))
            .Returns(false);

            parser.Parse(tokens, parseResult);

            parseResult.HasErrors.Should().BeTrue();
            parseResult.Errors.Should().HaveCount(1);
            parseResult.Errors[0].Should().BeOfType <OptionValueInvalidFormatError>();

            var error = (OptionValueInvalidFormatError)parseResult.Errors[0];

            error.OptionName.Should().Be("int64s");
            error.InvalidOptionValue.Should().Be("NotAInt64");
            error.ExpectedValueFormat.Should().Be("An integer in the range from -9223372036854775808 to 9223372036854775807");
            error.GetErrorMessage().Should().Be("The value 'NotAInt64' of the option --int64s has an invalid format. The expected format is: An integer in the range from -9223372036854775808 to 9223372036854775807.");
        }
 /// <summary>
 /// Initializes a new instance of this class.
 /// </summary>
 /// <param name="commandParser">The parser for the command the option belongs to.</param>
 /// <param name="optionParser">The parser for the option.</param>
 /// <exception cref="ArgumentNullException"><paramref name="commandParser" /> is null.</exception>
 /// <exception cref="ArgumentNullException"><paramref name="optionParser" /> is null.</exception>
 public Int64ListOptionSetup(CommandParser <TCommandOptions> commandParser, Int64ListOptionParser optionParser) : base(commandParser, optionParser)
 {
 }
Beispiel #9
0
        public void NumberStyles_Initially_ShouldReturnAny()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.NumberStyles.Should().Be(NumberStyles.Any);
        }
Beispiel #10
0
        public void IsOptionRequired_Initially_ShouldReturnFalse()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.IsOptionRequired.Should().BeFalse();
        }
Beispiel #11
0
        public void FormatProvider_Initially_ShouldReturnValueOfCurrentCulture()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.FormatProvider.Should().Be(new CultureInfo("en-US"));
        }
Beispiel #12
0
        public void TargetProperty_ShouldReturnPropertySpecifiedViaConstructor()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.TargetProperty.Should().BeSameAs(typeof(DataTypesCommandOptions).GetProperty("Int64s"));
        }
Beispiel #13
0
        public void OptionType_ShouldReturnMultiValueOption()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.OptionType.Should().Be(OptionType.MultiValueOption);
        }
Beispiel #14
0
        public void OptionName_ShouldReturnNameSpecifiedViaConstructor()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.OptionName.Should().Be("int64s");
        }
Beispiel #15
0
        public void OptionDefaultValue_Initially_ShouldReturnNull()
        {
            var parser = new Int64ListOptionParser(typeof(DataTypesCommandOptions).GetProperty("Int64s"), "int64s");

            parser.OptionDefaultValue.Should().BeNull();
        }