public async void ActivatingAppContainer_ActivatesServices() { var info = CreateAppContainer(); var serviceCallList = new List <string>(); var service = new MockLifetimeAwareService("Service", serviceCallList); info.AppContainer.LifetimeManager.Register(service); await info.AppContainer.Activate(); Assert.Equal(new string[] { "Service - Activate" }, serviceCallList); }
public async void DeactivatingAppContainer_DeactivatesChildContainerServices() { var info = CreateAppContainerWithChild(); var serviceCallList = new List <string>(); var service = new MockLifetimeAwareService("Child Service", serviceCallList); info.ChildAppContainer.LifetimeManager.Register(service); await info.ParentAppContainer.Deactivate(); Assert.Equal(new string[] { "Child Service - Deactivate" }, serviceCallList); }
public void RegisterService_ThrowsException_IfServiceIsRegisteredMultipleTimes() { var lifetimeManagerSource = new LifetimeManagerSource(); var lifetimeManager = lifetimeManagerSource.LifetimeManager; var service = new MockLifetimeAwareService(); lifetimeManager.Register(service); var e = Assert.Throws <InvalidOperationException>(() => lifetimeManager.Register(service)); Assert.Equal("You cannot register a service multiple times.", e.Message); }
public async void ActivatingAppContainer_ActivatesParentBeforeChild() { var info = CreateAppContainerWithChild(); var serviceCallList = new List <string>(); var parentService = new MockLifetimeAwareService("Parent Service", serviceCallList); var childService = new MockLifetimeAwareService("Child Service", serviceCallList); info.ParentAppContainer.LifetimeManager.Register(parentService); info.ChildAppContainer.LifetimeManager.Register(childService); await info.ParentAppContainer.Activate(); Assert.Equal(new string[] { "Parent Service - Activate", "Child Service - Activate" }, serviceCallList); }
public void UnregisterService_ThrowsException_IfServiceIsNotRegistered() { var lifetimeManagerSource = new LifetimeManagerSource(); var lifetimeManager = lifetimeManagerSource.LifetimeManager; var service1 = new MockLifetimeAwareService(); var service2 = new MockLifetimeAwareService(); lifetimeManager.Register(service1); var e = Assert.Throws <InvalidOperationException>(() => lifetimeManager.Unregister(service2)); Assert.Equal("Cannot unregister the service as it is not currently registered.", e.Message); }
public async void DisposingChildContainer_DoesNotReceiveFurtherDeactivations() { var info = CreateAppContainerWithChild(); var serviceCallList = new List <string>(); var service = new MockLifetimeAwareService("Child Service", serviceCallList); info.ChildAppContainer.LifetimeManager.Register(service); info.ChildAppContainer.Dispose(); serviceCallList.Clear(); await info.ParentAppContainer.Deactivate(); Assert.Equal(new string[] { }, serviceCallList); }
public async void Deactivate_WithSingleService_DeactivatesService() { var lifetimeManagerSource = new LifetimeManagerSource(); var lifetimeManager = lifetimeManagerSource.LifetimeManager; var service1 = new MockLifetimeAwareService(); lifetimeManager.Register(service1); await lifetimeManagerSource.Deactivate(); Assert.Equal(0, service1.ActivateCount); Assert.Equal(1, service1.DeactivateCount); }
public async void Dectivate_UnregisteredService_DoesNotDectivate() { var lifetimeManagerSource = new LifetimeManagerSource(); var lifetimeManager = lifetimeManagerSource.LifetimeManager; var service1 = new MockLifetimeAwareService(); lifetimeManager.Register(service1); lifetimeManager.Unregister(service1); await lifetimeManagerSource.Deactivate(); Assert.Equal(0, service1.ActivateCount); Assert.Equal(0, service1.DeactivateCount); }