Ejemplo n.º 1
0
        public void AddBetterPlugins()
        {
            DiscoverDoneEventArgs lastDiscoverEventArgs = null;

            PluginDiscoverer discoverer = new PluginDiscoverer();

            discoverer.DiscoverDone += (sender, e) => lastDiscoverEventArgs = e;

            TestBase.CopyPluginToTestDir("ServiceA.Old.dll");

            discoverer.Discover(TestBase.TestFolderDir, true);

            Assert.That(lastDiscoverEventArgs.NewPlugins.Count, Is.EqualTo(1));
            Assert.That(lastDiscoverEventArgs.NewOldPlugins.Count, Is.EqualTo(0));

            IPluginInfo bestVersion = discoverer.FindPlugin(new System.Guid("{12A9FCC0-ECDC-4049-8DBF-8961E49A9EDE}"));

            Assert.That(bestVersion.Version == new Version("1.0.0"));

            TestBase.CopyPluginToTestDir("ServiceA.dll");

            discoverer.Discover(TestBase.TestFolderDir, true);

            Assert.That(lastDiscoverEventArgs.NewPlugins.Count, Is.EqualTo(0));
            Assert.That(lastDiscoverEventArgs.NewOldPlugins.Count, Is.EqualTo(1));

            IPluginInfo newBestVersion = discoverer.FindPlugin(new System.Guid("{12A9FCC0-ECDC-4049-8DBF-8961E49A9EDE}"));

            Assert.That(newBestVersion.Version == new Version("1.1.0"));

            Assert.That(bestVersion.GetHashCode() == newBestVersion.GetHashCode());
        }
Ejemplo n.º 2
0
        public void TestDiscoverEditors()
        {
            int nbEditors = 0;

            PluginDiscoverer discoverer = new PluginDiscoverer();

            TestBase.CopyPluginToTestDir("ServiceA.dll");
            TestBase.CopyPluginToTestDir("ServiceB.dll");
            TestBase.CopyPluginToTestDir("EditorsOfPlugins.dll");
            discoverer.Discover(TestBase.TestFolderDir, true);

            Assert.That(discoverer.AllAssemblies.Count == 3);
            Assert.That(discoverer.PluginOrServiceAssemblies.Count == 3);
            Assert.That(discoverer.Plugins.Count, Is.EqualTo(6));

            foreach (IPluginInfo plugin in discoverer.Plugins)
            {
                nbEditors += plugin.EditorsInfo.Count;
            }

            Assert.That(nbEditors, Is.EqualTo(6));     // 6 because ServiceA get an accessor to its configuration.

            IPluginInfo editorOfTwoPlugins = discoverer.FindPlugin(new Guid("{BC7E641B-E4EE-47f5-833B-0AFFFAA2A683}"));

            Assert.That(editorOfTwoPlugins.EditorsInfo.Any((a) => { return((a.ConfigurationPropertyName == "ConfigPlugin01") && (a.IsConfigurationPropertyValid)); }));
            Assert.That(editorOfTwoPlugins.EditorsInfo.Any((a) => { return((a.ConfigurationPropertyName == "ConfigPlugin02") && (a.IsConfigurationPropertyValid)); }));
        }
        public void TestConsumers()
        {
            PluginDiscoverer discoverer = new PluginDiscoverer();

            TestBase.CopyPluginToTestDir("ServiceProducer.Model.dll");
            TestBase.CopyPluginToTestDir("ServiceProducer.dll");
            TestBase.CopyPluginToTestDir("ServiceConsumer.dll");
            discoverer.Discover(TestBase.TestFolderDir, true);

            Assert.That(discoverer.AllAssemblies.Count, Is.EqualTo(3));
            Assert.That(discoverer.AllPlugins.Count, Is.EqualTo(3));

            IPluginInfo c0 = discoverer.FindPlugin(new Guid("{2294F5BD-C511-456F-8E6B-A39A84FBAE51}"));
        }
        public void TestConsumers()
        {
            PluginDiscoverer discoverer = new PluginDiscoverer();

            TestBase.CopyPluginToTestDir( "ServiceProducer.Model.dll" );
            TestBase.CopyPluginToTestDir( "ServiceProducer.dll" );
            TestBase.CopyPluginToTestDir( "ServiceConsumer.dll" );
            discoverer.Discover( TestBase.TestFolderDir, true );

            Assert.That( discoverer.AllAssemblies.Count, Is.EqualTo( 3 ) );
            Assert.That( discoverer.AllPlugins.Count, Is.EqualTo( 3 ) );

            IPluginInfo c0 = discoverer.FindPlugin( new Guid("{2294F5BD-C511-456F-8E6B-A39A84FBAE51}") );

        }
Ejemplo n.º 5
0
        public void TestDiscoverEditors()
        {
            int nbEditors = 0;

            PluginDiscoverer discoverer = new PluginDiscoverer();
            
            TestBase.CopyPluginToTestDir( "ServiceA.dll" );
            TestBase.CopyPluginToTestDir( "ServiceB.dll" );
            TestBase.CopyPluginToTestDir( "EditorsOfPlugins.dll" );
            discoverer.Discover( TestBase.TestFolderDir, true );

            Assert.That( discoverer.AllAssemblies.Count == 3 );
            Assert.That( discoverer.PluginOrServiceAssemblies.Count == 3 );
            Assert.That( discoverer.Plugins.Count, Is.EqualTo( 6 ) );

            foreach( IPluginInfo plugin in discoverer.Plugins )
            {
                nbEditors += plugin.EditorsInfo.Count;
            }

            Assert.That( nbEditors, Is.EqualTo( 6 ) ); // 6 because ServiceA get an accessor to its configuration.

            IPluginInfo editorOfTwoPlugins = discoverer.FindPlugin( new Guid( "{BC7E641B-E4EE-47f5-833B-0AFFFAA2A683}" ) );
            Assert.That( editorOfTwoPlugins.EditorsInfo.Any( ( a ) => { return (a.ConfigurationPropertyName == "ConfigPlugin01") && (a.IsConfigurationPropertyValid); } ) );
            Assert.That( editorOfTwoPlugins.EditorsInfo.Any( ( a ) => { return (a.ConfigurationPropertyName == "ConfigPlugin02") && (a.IsConfigurationPropertyValid); } ) );
        }