public void eject_family_removes_the_family_and_disposes_all_of_its_instances()
        {
            var instance1 = new FakeInstance();
            var instance2 = new FakeInstance();
            var instance3 = new FakeInstance();

            var graph = new PluginGraph();

            graph.Families[typeof(IThingy)].AddInstance(instance1);
            graph.Families[typeof(IThingy)].AddInstance(instance2);
            graph.Families[typeof(IThingy)].AddInstance(instance3);

            graph.EjectFamily(typeof(IThingy));

            instance1.WasDisposed.ShouldBeTrue();
            instance2.WasDisposed.ShouldBeTrue();
            instance3.WasDisposed.ShouldBeTrue();

            graph.Families.Has(typeof(IThingy));
        }
 public void EjectAllInstancesOf <T>()
 {
     _pluginGraph.EjectFamily(typeof(T));
 }