public void ContainsDescriptorOfTest()
        {
            PluginDescriptorCollection list = new PluginDescriptorCollection();
            MirandaPlugin plugin = Virtuoso_Miranda_Plugins_MirandaPlugin_EmptyPluginAccessor.CreatePrivate();
            PluginDescriptor descriptor = Virtuoso_Miranda_Plugins_PluginDescriptorAccessor.CreatePrivate(plugin);
            list.Add(descriptor);

            PluginDescriptorReadOnlyCollection target = new PluginDescriptorReadOnlyCollection(list);

            bool expected = true;
            bool actual = target.ContainsDescriptorOf(plugin);
            Assert.AreEqual<bool>(expected, actual, "Virtuoso.Miranda.Plugins.PluginDescriptorReadOnlyCollection.ContainsDescriptorOf did not return the expected value.");

            expected = true;
            actual = target.ContainsDescriptorOf(plugin.GetType());
            Assert.AreEqual<bool>(expected, actual, "Virtuoso.Miranda.Plugins.PluginDescriptorReadOnlyCollection.ContainsDescriptorOf did not return the expected value.");

            Assert.AreEqual<bool>(false, target.ContainsDescriptorOf(Virtuoso_Miranda_Plugins_MirandaPlugin_EmptyPluginAccessor.CreatePrivate()), "False result returned from the ContainsDescriptorOf method.");
            Assert.AreEqual<bool>(false, target.ContainsDescriptorOf(typeof(string)), "False result returned from the ContainsDescriptorOf method.");
        }
        private void PublishPlugins(PluginDescriptorReadOnlyCollection plugins)
        {
            PluginsLVIEW.BeginUpdate();

            foreach (PluginDescriptor descriptor in plugins)
            {
                try
                {
                    ListViewItem item = new ListViewItem(new string[] { descriptor.Plugin.Name, descriptor.Plugin.Author,
                            descriptor.Plugin.Version.ToString(), descriptor.PluginState.ToString() });

                    switch (descriptor.PluginState)
                    {
                        case PluginState.Enabled:
                            item.Group = PluginsLVIEW.Groups["EnabledGroup"];
                            break;
                        case PluginState.Disabled:
                            item.Group = PluginsLVIEW.Groups["DisabledByUserGroup"];
                            break;
                        case PluginState.CrashDisabled:
                            item.Group = PluginsLVIEW.Groups["DisabledByCrashGroup"];
                            break;
                    }

                    item.Tag = descriptor;
                    PluginsLVIEW.Items.Add(item);
                }
                finally
                {
                    PluginsLVIEW.EndUpdate();
                }
            }
        }