Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        public void PluginsShouldBeCached()
        {
            var manager = new CommandPluginManager();

            manager.LoadAllPlugins(System.Environment.CurrentDirectory);
            var plugins      = manager.GetPluginInstances();
            var pluginsAgain = manager.GetPluginInstances();

            CollectionAssert.AreEquivalent(plugins, pluginsAgain);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
            }
        }