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( () => 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.ShouldHave().AllProperties().EqualTo(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 }