public void CanAddDemandAddServiceAndRetrieveService() { TestableServiceCollection services = CreateServiceCollection(); services.AddOnDemand(typeof(MockDemandService)); Assert.IsTrue(services.Contains <MockDemandService>()); Assert.IsNotNull(services.Get <MockDemandService>()); }
public void DemandAddedServiceFromParentGetsReplacedInParentEvenWhenAskedForFromChild_Generic() { TestableServiceCollection parent = CreateServiceCollection(); TestableServiceCollection child = new TestableServiceCollection(parent); parent.AddOnDemand <MockDemandService>(); MockDemandService svc = child.Get <MockDemandService>(); Assert.AreSame(svc, parent.Locator.Get(new DependencyResolutionLocatorKey(typeof(MockDemandService), null))); }
public void CanAddDemandAddServiceOfOneTypeAndRegisterAsOtherType() { TestableServiceCollection services = CreateServiceCollection(); services.AddOnDemand(typeof(MockDemandService), typeof(IMockDemandService)); Assert.IsFalse(services.Contains <MockDemandService>()); Assert.IsTrue(services.Contains <IMockDemandService>()); Assert.IsNull(services.Get <MockDemandService>()); Assert.IsNotNull(services.Get <IMockDemandService>()); }
public void CanAddDemandAddServiceAndItWontBeCreatedUntilAskedFor() { TestableServiceCollection services = CreateServiceCollection(); MockDemandService.WasCreated = false; services.AddOnDemand(typeof(MockDemandService)); Assert.IsFalse(MockDemandService.WasCreated); Assert.IsTrue(services.Contains <MockDemandService>()); Assert.IsFalse(MockDemandService.WasCreated); MockDemandService svc = services.Get <MockDemandService>(); Assert.IsTrue(MockDemandService.WasCreated); }
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); }