Пример #1
0
        public void Double_dash_force_subsequent_arguments_as_values()
        {
            // Fixture setup
            var expectedResult = new Simple_Options_With_Values
            {
                StringValue    = "str1",
                LongValue      = 10L,
                StringSequence = new[] { "-a", "--bee", "-c" },
                IntValue       = 20
            };
            var arguments = new[] { "--stringvalue", "str1", "--", "10", "-a", "--bee", "-c", "20" };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <Simple_Options_With_Values> >(() => new Simple_Options_With_Values()),
                (a, optionSpecs) =>
                Tokenizer.PreprocessDashDash(a,
                                             args => Tokenizer.Tokenize(args, name => NameLookup.Contains(name, optionSpecs, StringComparer.Ordinal))),
                arguments,
                StringComparer.Ordinal,
                false,
                CultureInfo.InvariantCulture,
                true,
                true,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            expectedResult.Should().BeEquivalentTo(((Parsed <Simple_Options_With_Values>)result).Value);

            // Teardown
        }
Пример #2
0
 public static void UnParsing_instance_with_dash_in_value_and_dashdash_disabled_returns_command_line_with_value()
 {
     var options = new Simple_Options_With_Values { StringSequence = new List<string> { "-something", "with", "dash" } };
     new Parser()
         .FormatCommandLine(options)
         .ShouldBeEquivalentTo("-something with dash");
 }
Пример #3
0
 public static void UnParsing_instance_with_no_values_and_dashdash_enabled_returns_command_line_without_dash_dash()
 {
     var options = new Simple_Options_With_Values();
     new Parser((setting) => setting.EnableDashDash = true)
         .FormatCommandLine(options)
         .ShouldBeEquivalentTo("");
 }
Пример #4
0
 public static void UnParsing_instance_with_dash_in_value_and_dashdash_enabled_returns_command_line_with_value_prefixed_with_dash_dash()
 {
     var options = new Simple_Options_With_Values { StringSequence = new List<string> { "-something", "with", "dash" } };
     new Parser((setting) => setting.EnableDashDash = true)
         .FormatCommandLine(options)
         .ShouldBeEquivalentTo("-- -something with dash");
 }
Пример #5
0
        public void Parse_values_partitioned_between_sequence_and_scalar()
        {
            // Fixture setup
            var expectedResult = new Simple_Options_With_Values
            {
                StringValue    = string.Empty,
                LongValue      = 10L,
                StringSequence = new[] { "a", "b", "c" },
                IntValue       = 20
            };

            // Exercize system
            var result = InvokeBuild <Simple_Options_With_Values>(
                new[] { "10", "a", "b", "c", "20" });

            // Verify outcome
            expectedResult.Should().BeEquivalentTo(((Parsed <Simple_Options_With_Values>)result).Value);

            // Teardown
        }
Пример #6
0
        public void Parse_options_with_double_dash()
        {
            // Fixture setup
            var expectedOptions = new Simple_Options_With_Values
            {
                StringValue    = "astring",
                LongValue      = 20L,
                StringSequence = new[] { "--aaa", "-b", "--ccc" },
                IntValue       = 30
            };
            var sut = new Parser(with => with.EnableDashDash = true);

            // Exercize system
            var result =
                sut.ParseArguments <Simple_Options_With_Values>(
                    new[] { "--stringvalue", "astring", "--", "20", "--aaa", "-b", "--ccc", "30" });

            // Verify outcome
            ((Parsed <Simple_Options_With_Values>)result).Value.ShouldBeEquivalentTo(expectedOptions);
            // Teardown
        }
Пример #7
0
        public void Parse_values_partitioned_between_sequence_and_scalar()
        {
            // Fixture setup
            var expectedResult = new Simple_Options_With_Values
            {
                StringValue    = string.Empty,
                LongValue      = 10L,
                StringSequence = new[] { "a", "b", "c" },
                IntValue       = 20
            };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <Simple_Options_With_Values> >(() => new Simple_Options_With_Values()),
                new[] { "10", "a", "b", "c", "20" },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            expectedResult.ShouldBeEquivalentTo(((Parsed <Simple_Options_With_Values>)result).Value);

            // Teardown
        }