public void Not_Throw_If_Bad_Object_Given_To_Generic_Type() { // arrange var values = new List <string>(); var sw = new SingleValueSwitch <StringBuilder>(new Parser("a"), 'l', "log", (o, s) => values.Add(s)); var info = new IterationInfo("-l log.txt -o other".Split(' '), 0); Action mightThrow = () => sw.Consume(new object(), new ConsumptionRequest(info, 2)); // act // assert mightThrow.Should().NotThrow(); }
public void Provide_A_Generic_Version() { // arrange var values = new List <string>(); var sw = new SingleValueSwitch <StringBuilder>(new Parser("a"), 'l', "log", (o, s) => values.Add(s)); var info = new IterationInfo("-l log.txt -o other".Split(' '), 0); // act var result = sw.Consume(new StringBuilder(), new ConsumptionRequest(info, 2)); // assert values.Should().BeEquivalentTo("log.txt".Split(' ')); result.NumConsumed.Should().Be(2); }
public void Only_Consume_Two_Strings() { // arrange var values = new List <string>(); var sw = new SingleValueSwitch(new Parser("a"), 'l', "log", (o, s) => values.Add(s)); var info = new IterationInfo("-l log.txt -o other".Split(' '), 0); // act var result = sw.Consume(new object(), new ConsumptionRequest(info, 2)); // assert values.Should().BeEquivalentTo("log.txt".Split(' ')); result.NumConsumed.Should().Be(2); }
public void Generate_The_Correct_Output_For_A_Single_Value_Switch() { // arrange var mock = new Mock <IInlineSequence>(); mock.SetupAllProperties(); var builder = DefaultBuilder.CreateDefaultBuilder(); var parameter = new SingleValueSwitch(builder.Context.ParserRepository.Get("util"), 'v', "value", (o, s) => { }); var vm = new ParameterViewModel(parameter, Theme.Default); var usage = new ParameterUsage { ViewModel = vm }; // act usage.GenerateSequence(mock.Object); // assert usage.StringBuilder.ToString().Should().Be("[-v, --value v]"); }