public void OnAssemblyRemovedShouldRaisePluginLostForEachPluginInAssembly()
        {
            MockAssemblySource mockSource = new MockAssemblySource();
              PluginExtractor tested = new PluginExtractor(mockSource);

              List<PluginDescriptor> plugins = new List<PluginDescriptor>();
              tested.PluginAdded += (s, e) => plugins.Add(e.Plugin);
              tested.PluginRemoved += (s, e) => plugins.Remove(e.Plugin);

              using (AssemblyReflectionManager manager = new AssemblyReflectionManager())
              {
            string assemblyPath = GetType().Assembly.Location;
            manager.LoadAssembly(assemblyPath);
            mockSource.RaiseAssemblyAdded(new AssemblyAddedEventArgs(assemblyPath, manager));

            AssemblyRemovedEventArgs args = new AssemblyRemovedEventArgs(assemblyPath);
            mockSource.RaiseAssemblyRemoved(args);
              }

              Assert.AreEqual(0, plugins.Count);
        }