Ejemplo n.º 1
0
        public async Task Run_WhenHelpArgExists_ReturnsHelpInfo()
        {
            var helpInfo = new HelpInfo("test", string.Empty, string.Empty, HelpInfoType.Category);

            var helpParser = Substitute.For <IHelpInfoFactory>();

            helpParser.Create(Arg.Any <string[]>())
            .Returns(helpInfo);

            var runner = new CliDispatcher(
                Substitute.For <IExecutableInfoFactory>(),
                helpParser,
                Substitute.For <IExecutableFactory>(),
                Substitute.For <ICommandDispatcher>(),
                Substitute.For <IQueryDispatcher>());

            var result = await runner.DispatchAsync("test --help");

            result.Should().Be(helpInfo);
        }
Ejemplo n.º 2
0
        public async Task Run_WhenQueryIsDetermined_ReturnsQueryHandlerResult()
        {
            var executableFactory = Substitute.For <IExecutableFactory>();

            executableFactory.Create(Arg.Any <ExecutableInfo>())
            .Returns(new GetFoo());

            var queryExecutor = Substitute.For <IQueryDispatcher>();

            queryExecutor.ExecuteAsync(Arg.Any <IQuery>()).Returns("success!");

            var runner = new CliDispatcher(
                Substitute.For <IExecutableInfoFactory>(),
                Substitute.For <IHelpInfoFactory>(),
                executableFactory,
                Substitute.For <ICommandDispatcher>(),
                queryExecutor);

            var result = await runner.DispatchAsync(string.Empty);

            result.Should().Be("success!");
            await queryExecutor.Received(1).ExecuteAsync(Arg.Any <IQuery>());
        }
Ejemplo n.º 3
0
        public async Task Run_WhenCommandIsDetermined_ReturnsCommandHandlerResult()
        {
            var executableFactory = Substitute.For <IExecutableFactory>();

            executableFactory.Create(Arg.Any <ExecutableInfo>())
            .Returns(new CreateFoo(0, DateTime.MinValue));

            var commandExecutor = Substitute.For <ICommandDispatcher>();

            commandExecutor.ExecuteAsync(Arg.Any <ICommand>()).Returns("success!");

            var runner = new CliDispatcher(
                Substitute.For <IExecutableInfoFactory>(),
                Substitute.For <IHelpInfoFactory>(),
                executableFactory,
                commandExecutor,
                Substitute.For <IQueryDispatcher>());

            var result = await runner.DispatchAsync(string.Empty);

            result.Should().Be("success!");
            await commandExecutor.Received(1).ExecuteAsync(Arg.Any <ICommand>());
        }