public void Parse_options_with_double_dash() { // Fixture setup var expectedOptions = new FakeOptionsWithValues { 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<FakeOptionsWithValues>( new[] { "--stringvalue", "astring", "--", "20", "--aaa", "-b", "--ccc", "30" }); // Verify outcome result.Value.ShouldBeEquivalentTo(expectedOptions); // Teardown }
public void Parse_values_partitioned_between_sequence_and_scalar() { // Fixture setup var expectedResult = new FakeOptionsWithValues { StringValue = string.Empty, LongValue = 10L, StringSequence = new[] { "a", "b", "c" }, IntValue = 20 }; // Exercize system var result = InstanceBuilder.Build( Maybe.Just<Func<FakeOptionsWithValues>>(() => new FakeOptionsWithValues()), new[] { "10", "a", "b", "c", "20" }, StringComparer.Ordinal, CultureInfo.InvariantCulture); // Verify outcome expectedResult.ShouldBeEquivalentTo(((Parsed<FakeOptionsWithValues>)result).Value); // Teardown }
public void Double_dash_force_subsequent_arguments_as_values() { // Fixture setup var expectedResult = new FakeOptionsWithValues { 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<FakeOptionsWithValues>>(() => new FakeOptionsWithValues()), (a, optionSpecs) => Tokenizer.PreprocessDashDash(a, args => Tokenizer.Tokenize(args, name => NameLookup.Contains(name, optionSpecs, StringComparer.Ordinal))), arguments, StringComparer.Ordinal, CultureInfo.InvariantCulture); // Verify outcome expectedResult.ShouldBeEquivalentTo(((Parsed<FakeOptionsWithValues>)result).Value); // Teardown }
public void Parse_values_partitioned_between_sequence_and_scalar() { // Fixture setup var expectedResult = new FakeOptionsWithValues { StringValue = string.Empty, LongValue = 10L, StringSequence = new[] { "a", "b", "c" }, IntValue = 20 }; // Exercize system var result = InstanceBuilder.Build( () => new FakeOptionsWithValues(), new[] { "10", "a", "b", "c", "20" }, StringComparer.Ordinal, CultureInfo.InvariantCulture); // Verify outcome expectedResult.ShouldHave().AllProperties().EqualTo(result.Value); // Teardown }