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"); }
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 ..."); }
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); }