public string Run(params string[] args) { var writer = new FakeConsoleWriter(); var app = new CommandApp(); _appConfiguration?.Invoke(app); app.Configure(_configuration); app.Configure(c => c.SetOut(writer)); app.Run(args); return(writer.ToString()); }
public static string Run <TSettings>(params string[] args) where TSettings : CommandSettings { var writer = new FakeConsoleWriter(); var app = new CommandApp(); app.Configure(c => c.SetOut(writer)); app.Configure(c => c.AddCommand <GenericCommand <TSettings> >("foo")); app.Run(args); return(writer.Output .ToString() .NormalizeLineEndings() .Trim()); }
public async Task BrowseWritesErrorIfNoIssuesFound(string project, string error, Issue issue) { //arrange var facadeStub = Substitute.For <IGitLabFacade>(); facadeStub.ListIssues(Arg.Any <ListIssuesParameters>()).Returns(Result.Ok <IReadOnlyList <Issue> >(new Issue[] { })); var browser = Substitute.For <IBrowser>(); var fakeConsoleWriter = new FakeConsoleWriter(); var sut = CreateSut(facadeStub, browser, fakeConsoleWriter); //act await sut.Browse(new BrowseParameters(project, issue.Id)); //assert fakeConsoleWriter.ShouldHaveWritten($"Issue #{issue.Id} was not found in project {project}"); }
public async Task BrowseWritesErrorIfIssuesRequestFailed(string project, string error, Issue issue) { //arrange var facadeStub = Substitute.For <IGitLabFacade>(); facadeStub.ListIssues(Arg.Any <ListIssuesParameters>()).Returns(Result.Fail <IReadOnlyList <Issue> >(error)); var browser = Substitute.For <IBrowser>(); var fakeConsoleWriter = new FakeConsoleWriter(); var sut = CreateSut(facadeStub, browser, fakeConsoleWriter); //act await sut.Browse(new BrowseParameters(project, issue.Id)); //assert fakeConsoleWriter.ShouldHaveWrittenError(error); }
public (int ExitCode, string Output, CommandContext Context, CommandSettings Settings) Run(params string[] args) { CommandContext context = null; CommandSettings settings = null; var writer = new FakeConsoleWriter(); var app = new CommandApp(); _appConfiguration?.Invoke(app); app.Configure(_configuration); app.Configure(c => c.SetInterceptor(new ActionInterceptor((ctx, s) => { context = ctx; settings = s; }))); app.Configure(c => c.SetOut(writer)); var result = app.Run(args); return(result, writer.ToString(), context, settings); }