public void FilteredCatalog_EventsFired()
        {
            var aggCatalog = CatalogFactory.CreateAggregateCatalog();
            var cat1       = CatalogFactory.CreateAttributed(typeof(ScopeAComponent1), typeof(ScopeBComponent));

            var filteredCatalog = CatalogFactory.CreateFiltered(aggCatalog,
                                                                partDef => partDef.Metadata.ContainsKey("Scope") &&
                                                                partDef.Metadata["Scope"].ToString() == "A");

            var container = ContainerFactory.Create(filteredCatalog);

            Assert.False(container.IsPresent <ScopeAComponent1>(), "sa before add");
            Assert.False(container.IsPresent <ScopeBComponent>(), "sb before add");

            aggCatalog.Catalogs.Add(cat1);

            Assert.True(container.IsPresent <ScopeAComponent1>(), "sa after add");
            Assert.False(container.IsPresent <ScopeBComponent>(), "sb after add");

            aggCatalog.Catalogs.Remove(cat1);

            Assert.False(container.IsPresent <ScopeAComponent1>(), "sa after remove");
            Assert.False(container.IsPresent <ScopeBComponent>(), "sb after remove");
        }
 private ComposablePartCatalog ScopeCatalog(ComposablePartCatalog catalog, string scope)
 {
     return(CatalogFactory.CreateFiltered(catalog,
                                          partDef => partDef.Metadata.ContainsKey("Scope") &&
                                          partDef.Metadata["Scope"].ToString() == scope));
 }