public void eject_a_disposable_object() { var disposable = Substitute.For <IDisposable>(); var instance = new ObjectInstance(disposable); cache.Set(typeof(IWidget), instance, disposable); cache.Eject(typeof(IWidget), instance); cache.Has(typeof(IWidget), instance).ShouldBeFalse(); disposable.Received().Dispose(); }
public void eject_a_disposable_object() { var disposable = MockRepository.GenerateMock <IDisposable>(); var instance = new ObjectInstance(disposable); cache.Set(typeof(IWidget), instance, disposable); cache.Eject(typeof(IWidget), instance); cache.Has(typeof(IWidget), instance).ShouldBeFalse(); disposable.AssertWasCalled(x => x.Dispose()); }
void IDisposable.Dispose() { _families.Each( family => { family.Value.Instances.Each(instance => { _singletonCache.Eject(family.Value.PluginType, instance); if (instance is IDisposable) { instance.SafeDispose(); } }); }); _profiles.Each(x => x.SafeDispose()); _profiles.Clear(); var containerFamily = _families[typeof(IContainer)]; PluginFamily c; _families.TryRemove(typeof(IContainer), out c); containerFamily.RemoveAll(); _missingTypes.Clear(); _families.Each(x => x.SafeDispose()); _families.Clear(); }
void IDisposable.Dispose() { _families.Each(family => { family.Instances.Each(instance => { _singletonCache.Eject(family.PluginType, instance); }); }); _profiles.Each(x => x.SafeDispose()); _profiles.Clear(); var containerFamily = _families[typeof(IContainer)]; _families.Remove(typeof(IContainer)); containerFamily.RemoveAll(); _families.Each(x => x.SafeDispose()); _families.ClearAll(); }