public void Consume_Only_The_Maximum_Allowed_From_The_Request() { // arrange var list = new List <string[]>(); var sw = new ValuesSwitch(new Parser("a"), 'v', "values", (o, strings) => list.Add(strings)); var info = new IterationInfo("-v v0 v1 v2 v3 -s".Split(' '), 0); var request = new ConsumptionRequest(info, 3); // act var result = sw.Consume(new object(), request); // assert list.Should().HaveCount(1); list[0].Should().BeEquivalentTo("v0 v1".Split(' ')); result.NumConsumed.Should().Be(3); }
public void Not_Throw_If_Not_Given_Enough_Args_But_Return_Them_In_The_Result() { // arrange var list = new List <string[]>(); var sw = new ValuesSwitch(new Parser("a"), 'v', "values", (o, strings) => list.Add(strings)) { MinRequired = 5 }; var info = new IterationInfo("-v v0 v1 v2 v3 -s".Split(' '), 0); var request = new ConsumptionRequest(info, 3); ConsumptionResult res = null; Action mightThrow = () => res = sw.Consume(new object(), request); // act // assert mightThrow.Should().NotThrow(); res.ParseExceptions.Should().HaveCount(1).And.Subject.Single().Should().BeOfType <MissingValueException>(); }
public void Generate_The_Correct_Prefix_For_Switches() { // arrange var mock = new Mock <IInlineSequence>(); mock.SetupAllProperties(); var builder = DefaultBuilder.CreateDefaultBuilder(); var parameter = new ValuesSwitch(builder.Context.ParserRepository.Get("util"), 'v', "value", (o, strings) => { }, 1, 3); parameter.Help.ValueAlias = "val"; var vm = new ParameterViewModel(parameter, Theme.Default); var usage = new ParameterUsage { ViewModel = vm }; // act usage.GenerateSequence(mock.Object); // assert usage.GeneratedText.Should().Be("[-v, --value val1..val3]"); }