public void Parse_MyVerb_ParsersValid() { var args = new[] { "myverb", "--hello", "test" }; var opt = new VerbOptions(); var p = new CommandLineParser(); p.Parse(opt, args); Assert.Equal("test", opt.MyVerb.Hello); }
public void Parse_MyVerb_LastVerbIsValid() { var args = new[] { "myverb", "--hello", "test" }; var opt = new VerbOptions(); var p = new CommandLineParser(); p.Parse(opt, args); Assert.Same(opt.MyVerb, p.LastVerb); Assert.Equal("myverb", p.VerbPath); }
public async Task <int> RunAsync(string[] args) { #if NET45 var invokedVerb = string.Empty; object invokedVerbInstance = null; var options = new VerbOptions(); if (!Parser.Default.ParseArguments(args, options, (verb, subOptions) => { invokedVerb = verb; invokedVerbInstance = subOptions; })) { Console.WriteLine("There is no mandatory cmd argument. Exit immediately"); return(Parser.DefaultExitCodeFail); } switch (invokedVerb) { case "start": return(await StartBrokerAsync((StartCliOptions)invokedVerbInstance).ConfigureAwait(false)); case "broker": return(await StartBrokerAsync((BrokerCliOptions)invokedVerbInstance).ConfigureAwait(false)); case "launch": return(await LaunchAppAsync((LaunchCliOptions)invokedVerbInstance).ConfigureAwait(false)); case "stop": return(await StopBrokerAsync().ConfigureAwait(false)); case "studio": return(await StartStudioAsync().ConfigureAwait(false)); default: Console.WriteLine("There is no mandatory cmd argument. Exit immediately"); return(Parser.DefaultExitCodeFail); } #else return(await Parser.Default .ParseArguments <BrokerCliOptions, StartCliOptions, LaunchCliOptions, StopCliOptions, StudioCliOptions>(args) .MapResult( (BrokerCliOptions opts) => StartBrokerAsync(opts), (StartCliOptions opts) => StartBrokerAsync(opts), (LaunchCliOptions opts) => LaunchAppAsync(opts), (StopCliOptions opts) => StopBrokerAsync(), (StudioCliOptions opts) => StartStudioAsync(), errs => Task.FromResult(1))); #endif }
public void Parse_MyVerb_PropertVerCallbackIsCalled() { var args = new[] { "myverb", "--hello", "test" }; var opt = new VerbOptions(); var called = false; var p = new CommandLineParser(); p.Configuration.WhenVerb <VerbCommand>(command => called = true); p.Parse(opt, args); Assert.True(called); }