Example #1
0
        public void HelpInvokedAsActionOnParent()
        {
            // Given
            var logger = new StringBuilderLogger();
            var root   = new HelpWriterTestCommand()
                         .RegisterSubCommand(new KatasCommand())
                         .Use(logger)
            ;

            // When
            var result = root.Execute("help", "katas");

            // Then
            Assert.That(result, Is.EqualTo(0), logger.ErrorBuilder.ToString());

            var lines = logger.InfoBuilder.ToString()
                        .Split('\n')
                        .Select(row => row.Replace("\r", ""))
                        .ToArray()
            ;

            var i = -1;

            lines[++i].Trim().ShouldBe("This command is intended for demonstration purposes. It provides some katas");
            lines[++i].Trim().ShouldBe("which can be executed as actions.");
            lines[++i].Trim().ShouldBe("");
            lines[++i].Trim().ShouldBe("default action: fizz-buzz");
        }
Example #2
0
        public void RootSubCommandSectionFooter()
        {
            // Given
            var logger = new StringBuilderLogger();
            var root   = new HelpWriterTestCommand()
                         .RegisterSubCommand(new KatasCommand())
                         .Use(logger)
            ;

            // When
            var result = root.Execute("help");

            // Then
            Assert.That(result, Is.EqualTo(0), logger.ErrorBuilder.ToString());

            var lines = logger.InfoBuilder.ToString()
                        .Split('\n')
                        .Select(row => row.Replace("\r", ""))
                        .SkipUntil(row => row == "To get help for subcommands")
                        .ToArray()
            ;

            var i = -1;

            lines[++i].Trim().ShouldBe("To get help for subcommands");
            lines[++i].Trim().ShouldBe("help <subcommand>");
        }