public void RaiseAssemblyAdded(AssemblyAddedEventArgs args) { if (this.assemblyAdded != null) { this.assemblyAdded(this, args); } }
public void OnAssemblyAddedShouldRaisePluginFoundForEachPluginInAssembly() { MockAssemblySource mockSource = new MockAssemblySource(); PluginExtractor tested = new PluginExtractor(mockSource); List<PluginDescriptor> plugins = new List<PluginDescriptor>(); tested.PluginAdded += (s, e) => plugins.Add(e.Plugin); using (AssemblyReflectionManager manager = new AssemblyReflectionManager()) { string assemblyPath = GetType().Assembly.Location; manager.LoadAssembly(assemblyPath); AssemblyAddedEventArgs args = new AssemblyAddedEventArgs(assemblyPath, manager); mockSource.RaiseAssemblyAdded(args); } Assert.AreEqual(3, plugins.Count); Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For<MockPlugin1>())); Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For<MockPlugin2>())); Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For<MockPlugin3>())); }
public void OnAssemblyAddedShouldRaisePluginFoundForEachPluginInAssembly() { MockAssemblySource mockSource = new MockAssemblySource(); PluginExtractor tested = new PluginExtractor(mockSource); List <PluginDescriptor> plugins = new List <PluginDescriptor>(); tested.PluginAdded += (s, e) => plugins.Add(e.Plugin); using (AssemblyReflectionManager manager = new AssemblyReflectionManager()) { string assemblyPath = GetType().Assembly.Location; manager.LoadAssembly(assemblyPath); AssemblyAddedEventArgs args = new AssemblyAddedEventArgs(assemblyPath, manager); mockSource.RaiseAssemblyAdded(args); } Assert.AreEqual(3, plugins.Count); Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For <MockPlugin1>())); Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For <MockPlugin2>())); Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For <MockPlugin3>())); }
/// <summary> /// Called when a new assembly is reported from the assembly source. /// The new assembly is examined through reflection and events for found plugins are raised on the <see cref="IPluginSource"/> interface. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="AssemblyAddedEventArgs"/> instance containing the event data.</param> private void OnAssemblyAdded(object sender, AssemblyAddedEventArgs e) { var plugins = e.Reflect(assembly => ExtractPlugins(assembly)); RemovePlugins(e.AssemblyId); AddPlugins(e.AssemblyId, plugins); }
public void RaiseAssemblyAdded(AssemblyAddedEventArgs args) { if (this.assemblyAdded != null) this.assemblyAdded(this, args); }