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" }; var tokenizer = new TokenizerGetOpt(); // Exercize system var result = InstanceBuilder.Build( Maybe.Just<Func<FakeOptionsWithValues>>(() => new FakeOptionsWithValues()), (a, optionSpecs) => tokenizer.Preprocess(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 }