public ArgumentRule Required() { ArgumentRule result = this; result.Repeat = ArgumentRepeat.One; return(result); }
public ArgumentRule Optional() { ArgumentRule result = this; result.Repeat = ArgumentRepeat.ZeroOrOne; return(result); }
public ArgumentRule Many() { ArgumentRule result = this; result.Repeat = ArgumentRepeat.ZeroOrMore; return(result); }
public ArgumentRule AtLeastOnce() { ArgumentRule result = this; result.Repeat = ArgumentRepeat.OneOrMore; return(result); }
public void AddOptionLazy() { var input = "hah -searchTarget:"; var generator = new CandidatesGenerator(Syntax); var result = generator.GenerateCandidates(input); Assert.AreEqual(2, result.Count()); var optionArgTextBox = new ArgumentRule("TextBox", MockMethods.TextBox); var targetArgs = Syntax[0].OptionalArgs.ElementAt(1).OptionalArgs; targetArgs.Add(optionArgTextBox); result = generator.GenerateCandidates(input); Assert.AreEqual(3, result.Count()); CollectionAssert.AreEqual(targetArgs.Select(x => x.Name).ToArray(), result.Select(x => x.Name).ToArray()); }
public void Setup() { Syntax = new CommandSyntax(); Parser = new CommandParser(Syntax); Validator = new CommandValidator(Parser, new MockLocalizer()); MockMethods = new MockCommand(); Generator = new CandidatesGenerator(Syntax); Switch = new ArgumentRule("switch", MockMethods.Switch); Click = new ArgumentRule("click", MockMethods.Click); RightClick = new ArgumentRule("rightclick", MockMethods.RightClick); DoubleClick = new ArgumentRule("doubleclick", MockMethods.DoubleClick); ArgApplication = new ArgumentRule("application", MockMethods.Application, ArgsFactory(Switch)); ArgWindow = new ArgumentRule("window", MockMethods.Window, ArgsFactory(Click, RightClick, DoubleClick)); ArgTaskbar = new ArgumentRule("taskbar", MockMethods.Taskbar, ArgsFactory(Click, RightClick)); ArgDividedscreen = new ArgumentRule("windowdividedscreen", MockMethods.WindowDividedScreen, ArgsFactory(Click, DoubleClick)); ArgText = new ArgumentRule("Text", MockMethods.Text); ArgCommand = new ArgumentRule("Command", MockMethods.Command); ArgInItemsControl = new ArgumentRule("TextInItemsControl", MockMethods.TextInItemsControl); OptButton = new ArgumentRule("Button", MockMethods.Button); OptCheckBox = new ArgumentRule("CheckBox", MockMethods.CheckBox); OptGenerator = new ArgumentRule("-hintGenerator", MockMethods.HintGenerator); OptTarget = new ArgumentRule("-searchTarget", MockMethods.SearchTarget, null, ArgsFactory(OptButton, OptCheckBox)); Hah = new CommandRule("hah", MockMethods.HitaHint, ArgsFactory(ArgWindow, ArgApplication, ArgTaskbar, ArgDividedscreen), ArgsFactory(OptGenerator, OptTarget)); SearchByText = new CommandRule("/", MockMethods.SearchByText, ArgsFactory(ArgText, ArgCommand, ArgInItemsControl), ArgsFactory(OptTarget)); Hah2 = new CommandRule("hah2", MockMethods.HitaHint2, ArgsFactory(ArgWindow, ArgDividedscreen)); MouseEmulation = new CommandRule("me", MockMethods.MouseEmulation); Syntax.Add(Hah); Syntax.Add(SearchByText); Syntax.Add(Hah2); Syntax.Add(MouseEmulation); }