public void BetweenValueOptionsOrderMatters()
        {
            var options = new SimpleOptionsWithValueOptionAndValueList();
            Result = base.Parser.ParseArguments(
                new string[] { "4321", "ofvalueoption", "-1234", "forvaluelist1", "forvaluelist2", "forvaluelist3" }, options);

            ResultShouldBeFalse();
        }
        public void Between_value_options_order_matters()
        {
            var options = new SimpleOptionsWithValueOptionAndValueList();
            var parser = new CommandLineParser();
            var result = parser.ParseArguments(
                new string[] { "4321", "ofvalueoption", "-1234", "forvaluelist1", "forvaluelist2", "forvaluelist3" }, options);

            result.Should().BeFalse();
        }
        public void ValueOptionTakesPrecedenceOnValueListRegardlessDeclarationOrder()
        {
            var options = new SimpleOptionsWithValueOptionAndValueList();
            Result = base.Parser.ParseArguments(
                new string[] { "ofvalueoption", "-1234", "4321", "forvaluelist1", "forvaluelist2", "forvaluelist3" }, options);

            ResultShouldBeTrue();

            options.StringItem.Should().Equal("ofvalueoption");
            options.NullableInteger.Should().Equal(-1234);
            options.UnsignedIntegerItem.Should().Equal(4321U);
            options.Items[0].Should().Equal("forvaluelist1");
            options.Items[1].Should().Equal("forvaluelist2");
            options.Items[2].Should().Equal("forvaluelist3");
        }
        public void Value_option_takes_precedence_on_value_list_regardless_declaration_order()
        {
            var options = new SimpleOptionsWithValueOptionAndValueList();
            var parser = new CommandLineParser();
            var result = parser.ParseArguments(
                new string[] { "ofvalueoption", "-1234", "4321", "forvaluelist1", "forvaluelist2", "forvaluelist3" }, options);

            result.Should().BeTrue();

            options.StringItem.Should().Be("ofvalueoption");
            options.NullableInteger.Should().Be(-1234);
            options.UnsignedIntegerItem.Should().Be(4321U);
            options.Items[0].Should().Be("forvaluelist1");
            options.Items[1].Should().Be("forvaluelist2");
            options.Items[2].Should().Be("forvaluelist3");
        }