public void RemovingServiceTwiceFiresEventOnce() { int EventFireCount = 0; TestableServiceCollection services = CreateServiceCollection(); services.Removed += delegate { EventFireCount++; }; services.AddNew <object>(); services.Remove(typeof(object)); services.Remove(typeof(object)); Assert.AreEqual(1, EventFireCount); }
public void RemovingSpecificServiceTypeRegistrationsRemovesOnlyThoseDependencyKeys() { TestableServiceCollection collection = CreateServiceCollection(); string str = "Hello world"; collection.Add <string>(str); collection.Add <object>(str); collection.Remove(typeof(object)); Assert.IsNull(collection.Locator.Get(new DependencyResolutionLocatorKey(typeof(object), null))); Assert.IsNotNull(collection.Locator.Get(new DependencyResolutionLocatorKey(typeof(string), null))); collection.Remove(typeof(string)); Assert.IsNull(collection.Locator.Get(new DependencyResolutionLocatorKey(typeof(string), null))); }
public void RemovingMultiplyRegisteredServiceInstanceDoesntFireEventUntilLastInstanceIsRemoved() { bool EventFired = false; string str = "Hello world"; TestableServiceCollection services = CreateServiceCollection(); services.Removed += delegate { EventFired = true; }; services.Add <string>(str); services.Add <object>(str); services.Remove <object>(); Assert.IsFalse(EventFired); services.Remove <string>(); Assert.IsTrue(EventFired); }
public void RemovingServiceAllowsNewServiceToBeRegisteredForGivenServiceType_Generic() { TestableServiceCollection services = CreateServiceCollection(); services.AddNew <object>(); services.Remove <object>(); services.AddNew <object>(); }
private WeakReference RemovingServiceRemovesStrongReferenceToService_TestHelper() { TestableServiceCollection services = CreateServiceCollection(); WeakReference wr = new WeakReference(services.AddNew <object>()); services.Remove(typeof(object)); return(wr); }
public void RemovingServiceAllowsNewServiceToBeRegisteredForGivenServiceType() { TestableServiceCollection services = CreateServiceCollection(); services.AddNew(typeof(object)); services.Remove(typeof(object)); services.AddNew(typeof(object)); }
public void RemovingMultipleRegisteredServiceOnlyRemovesStrongReferenceWhenLastInstanceIsGone_Generic() { TestableServiceCollection services = CreateServiceCollection(); MockDataObject mdo = new MockDataObject(); WeakReference wr = new WeakReference(mdo); services.Add <IMockDataObject>(mdo); services.Add <IMockDataObject2>(mdo); mdo = null; services.Remove <IMockDataObject>(); GC.Collect(); Assert.IsNotNull(wr.Target); services.Remove <IMockDataObject2>(); GC.Collect(); Assert.IsNull(wr.Target); }
public void CanRemoveService_Generic() { TestableServiceCollection services = CreateServiceCollection(); services.Add <MockDataObject>(new MockDataObject()); services.Remove <MockDataObject>(); Assert.IsNull(services.Get <MockDataObject>()); }
public void CanRemoveService() { TestableServiceCollection services = CreateServiceCollection(); services.Add(typeof(MockDataObject), new MockDataObject()); services.Remove(typeof(MockDataObject)); Assert.IsNull(services.Get(typeof(MockDataObject))); }
public void RemovingItemRemovesTypeIdPairFromLocator() { TestableServiceCollection collection = CreateServiceCollection(); object obj = collection.AddNew <object>(); collection.Remove(typeof(object)); Assert.IsNull(collection.Locator.Get(new DependencyResolutionLocatorKey(typeof(object), null))); }
public void RemovingServiceNotInContainerDoesntFireEvent() { bool EventFired = false; TestableServiceCollection services = CreateServiceCollection(); services.Removed += delegate { EventFired = true; }; services.Remove(typeof(object)); Assert.IsFalse(EventFired); }
public void RemovingServiceRemovesStrongReferenceToService() { TestableServiceCollection services = CreateServiceCollection(); WeakReference wr = new WeakReference(services.AddNew <object>()); services.Remove(typeof(object)); GC.Collect(); Assert.IsNull(wr.Target); }
private void RemovingMultipleRegisteredServiceOnlyRemovesStrongReferenceWhenLastInstanceIsGone_Generic_TestHelper2(out TestableServiceCollection services, out WeakReference wr) { services = CreateServiceCollection(); MockDataObject mdo = new MockDataObject(); wr = new WeakReference(mdo); services.Add <IMockDataObject>(mdo); services.Add <IMockDataObject2>(mdo); mdo = null; services.Remove <IMockDataObject>(); }
public void RemovingServiceCausesItToBeTornDown_Generic() { TestableServiceCollection services = CreateServiceCollection(); MockTearDownStrategy strategy = new MockTearDownStrategy(); services.Builder.Strategies.Add(strategy, WCSFBuilderStage.PreCreation); services.AddNew <object>(); services.Remove <object>(); Assert.IsTrue(strategy.TearDownCalled); }
public void RemovingServiceFiresEvent() { bool EventFired = false; object ServiceInEvent = null; TestableServiceCollection services = CreateServiceCollection(); services.Removed += delegate(object sender, DataEventArgs <object> e) { EventFired = true; ServiceInEvent = e.Data; }; object obj = services.AddNew <object>(); services.Remove(typeof(object)); Assert.IsTrue(EventFired); Assert.AreSame(obj, ServiceInEvent); }
public void RemovingServiceRemovesStrongReferenceToService() { var wRef2 = CallInItsOwnScope(() => { TestableServiceCollection services = CreateServiceCollection(); WeakReference wr = new WeakReference(services.AddNew <object>()); services.Remove(typeof(object)); return(wr); }); GC.Collect(); Assert.IsNull(wRef2.Target); }
public void RemovingMultipleRegisteredServiceOnlyRemovesStrongReferenceWhenLastInstanceIsGone_Generic() { TestableServiceCollection services = CreateServiceCollection(); var wRefwr = CallInItsOwnScope(() => { MockDataObject mdo = new MockDataObject(); WeakReference wr = new WeakReference(mdo); services.Add <IMockDataObject>(mdo); services.Add <IMockDataObject2>(mdo); mdo = null; return(wr); }); services.Remove <IMockDataObject>(); GC.Collect(); GC.WaitForPendingFinalizers(); Assert.IsNotNull(wRefwr.Target); services.Remove <IMockDataObject2>(); GC.Collect(); GC.WaitForPendingFinalizers(); Assert.IsNull(wRefwr.Target); }
public void DemandAddedServiceEventsAreFiredAtTheRightTime() { bool AddedEventFired = false; bool RemovedEventFired = false; TestableServiceCollection services = CreateServiceCollection(); services.Added += delegate { AddedEventFired = true; }; services.Removed += delegate { RemovedEventFired = true; }; services.AddOnDemand <object>(); Assert.IsFalse(AddedEventFired); Assert.IsFalse(RemovedEventFired); services.Get <object>(); Assert.IsTrue(AddedEventFired); Assert.IsFalse(RemovedEventFired); services.Remove <object>(); Assert.IsTrue(RemovedEventFired); }