Beispiel #1
0
            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());
            }
Beispiel #3
0
        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}");
        }
Beispiel #4
0
        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);
        }