private void LoadCommandPlugins() { var formatter = new MenuFormatter(); var pluginManager = new CommandPluginManager(); try { pluginManager.LoadAllPlugins(Path.Combine(AssemblyDirectory, "Plugins")); var plugins = pluginManager.GetPluginInstances(); // Add config plugin since it is a shared plugin SetupConfigurationPlugin(plugins); foreach (var plugin in plugins) { plugin.Init(_provider4); _provider4.AddGlobalCommand(plugin); } var menuGroups = formatter.GetMenuGroups(plugins); formatter.ConfigureMenu(menuGroups, _provider4); } catch (Exception ex) { MessageBox.Show(ex.ToString()); throw; } }
public void ShouldInstatiateAllPlugins() { var manager = new CommandPluginManager(); manager.LoadAllPlugins(System.Environment.CurrentDirectory); var plugins = manager.GetPluginInstances(); Assert.That(plugins.Count, Is.GreaterThanOrEqualTo(5).And.LessThanOrEqualTo(50)); }
public void PluginsShouldBeCached() { var manager = new CommandPluginManager(); manager.LoadAllPlugins(System.Environment.CurrentDirectory); var plugins = manager.GetPluginInstances(); var pluginsAgain = manager.GetPluginInstances(); CollectionAssert.AreEquivalent(plugins, pluginsAgain); }
public void ShouldCreateGroupsFromInstances() { var manager = new CommandPluginManager(); manager.LoadAllPlugins(System.Environment.CurrentDirectory); var plugins = manager.GetPluginInstances(); var groups = formatter.GetMenuGroups(plugins); Console.WriteLine(plugins.Count); }
public void PluginsWillNotBeLoadedIfTheyDoNotHaveIconSet() { var manager = new CommandPluginManager(); manager.LoadAllPlugins(System.Environment.CurrentDirectory); var plugins = manager.GetPluginInstances(); var bad = plugins.FirstOrDefault(x => x.Name == "Bad Mock"); Assert.That(bad, Is.Null); }
public void AllPluginsMustHaveMenuGroup() { var manager = new CommandPluginManager(); manager.LoadAllPlugins(System.Environment.CurrentDirectory); var plugins = manager.GetPluginInstances(); Console.WriteLine(plugins.Count); foreach (var pl in plugins) { Console.WriteLine("Validating: " + pl.Name); Assert.That(pl.MenuGroup, Is.Not.Null.Or.Empty); Assert.That(pl.Name, Is.Not.Null.And.Not.Empty); Assert.That(pl.DefaultBindings, Is.Not.Null); Assert.That(pl.Enabled, Is.True); } }