private ILibraryPluginData LoadLibraryPluginXmlData(LibraryPluginReference reference)
        {
            ILibraryPluginData pluginData;
            string             pluginDirectoryPath = Path.Combine(PluginMainDirectoryPath, reference.IdPlugin.ToString());

            if (Directory.Exists(pluginDirectoryPath))
            {
                string pluginXmlFilePath = Path.Combine(pluginDirectoryPath, "plugin.xml");

                try
                {
                    // load plugin.xml
                    pluginData = LibraryPluginDataController.Load(pluginXmlFilePath);
                }
                catch (Exception ex)
                {
                    throw new LibraryPluginManagerException(this, String.Format(
                                                                "Error while loading the plugin.xml file from path='{0}'.", pluginXmlFilePath), ex);
                }

                return(pluginData);
            }
            else
            {
                throw new LibraryPluginManagerException(this, String.Format(
                                                            "The requested plugin with Name='{0}' and Id='{1}' wasn't found. The plugin directory is missing: {2}",
                                                            reference.PluginName, reference.IdPlugin, pluginDirectoryPath));
            }
        }
        public void SetupTest()
        {
            string solutionDirectoryPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())));

            _PluginDirectoryPath = Path.Combine(solutionDirectoryPath, @"_TestData\InterfaceBooster\LibraryPluginData");
            _PluginXmlFilePath   = Path.Combine(_PluginDirectoryPath, "plugin.xml");
            _LibraryPluginData   = LibraryPluginDataController.Load(_PluginXmlFilePath);
        }