Пример #1
0
        public void can_invoke_command_filters()
        {
            var filters      = CommandFilter.GetFilters(Assembly.GetExecutingAssembly());
            var findAndRun   = filters.First(f => f.Name == "FindAndRunCommand");
            var headerFooter = filters.First(f => f.Name == "HeaderAndFooterFilter");

            findAndRun.Invoke(null, null).ToString().ShouldEqual("I am the result of running the app");
            headerFooter.Invoke(null, findAndRun).ToString().ShouldEqual("-----\nI am the result of running the app\n-------\n");
        }
Пример #2
0
        public void can_find_command_filters()
        {
            var filters = CommandFilter.GetFilters(Assembly.GetExecutingAssembly());

            (filters.Count > 1).ShouldBeTrue();

            filters.Select(f => f.FullName).ShouldContain("MooGet.Specs.CLI.CommandFilterSpec.FindAndRunCommand");
            filters.Select(f => f.FullName).ShouldContain("MooGet.Specs.CLI.CommandFilterSpec.HeaderAndFooterFilter");
            filters.Select(f => f.Name).ShouldContain("FindAndRunCommand");
            filters.Select(f => f.Name).ShouldContain("HeaderAndFooterFilter");
            filters.Select(f => f.Description).ShouldContain("I am the description ...");
        }
Пример #3
0
        public static object Run(string[] args)
        {
            if (Moo.Extensions.Count == 0)
            {
                return("No installed extensions\n");
            }

            var output = new StringBuilder();

            output.Line("Installed extensions:");
            foreach (var assembly in Moo.Extensions)
            {
                output.Line("  " + assembly.Location);

                // Print out this Extension's Commands
                var commands = Command.GetCommands(assembly);
                if (commands.Count > 0)
                {
                    output.Line("    Commands:");
                    foreach (var command in commands)
                    {
                        output.Line("      " + command.Name);
                    }
                }

                // Print out this Extension's Filters
                var filters = CommandFilter.GetFilters(assembly);
                if (filters.Count > 0)
                {
                    output.Line("    Filters:");
                    foreach (var filter in filters)
                    {
                        output.Line("      " + filter.Name);
                    }
                }
            }
            return(output);
        }