public void Install_OnlyRegisterComponentsOfTypeOfIControllers() { IWindsorContainer containerWithControllers = new WindsorContainer().Install(new ControllersInstaller()); var allHandlers = containerWithControllers.GetAllHandlers(); Assert.AreNotEqual(0, allHandlers.Length); var controllerHandlers = containerWithControllers.GetHandlersFor(typeof(IController)); CollectionAssert.AreEquivalent(allHandlers, controllerHandlers); }
public void Install_RegisterAllControllersAsTransient() { IWindsorContainer containerWithControllers = new WindsorContainer().Install(new ControllersInstaller()); var nonTransientControllers = containerWithControllers.GetHandlersFor(typeof(IController)) .Where(controller => controller.ComponentModel.LifestyleType != LifestyleType.Transient) .ToArray(); Assert.AreEqual(0, nonTransientControllers.Length); }
public void Install_AllControllersExposeThemselvesAsService() { IWindsorContainer containerWithControllers = new WindsorContainer().Install(new ControllersInstaller()); var controllersWithWrongName = containerWithControllers.GetHandlersFor(typeof(IController)) .Where(controller => controller.Service != controller.ComponentModel.Implementation) .ToArray(); Assert.AreEqual(0, controllersWithWrongName.Length); }
public void Install_RegisterComponentsWithTheSameNameThatItsTypes() { IWindsorContainer containerWithControllers = new WindsorContainer().Install(new ControllersInstaller()); var controllersWithWrongName = containerWithControllers.GetHandlersFor(typeof(IController)) .Where(controller => controller.ComponentModel.Name != controller.ComponentModel.Implementation.Name) .ToArray(); Assert.AreEqual(0, controllersWithWrongName.Length); }
public void GivenRegistrationsInstalled_AndRequestingComponentIsServiceOfferingController_WhenResolve_ThenReturnServiceOfferingFileProcessor() { Container = new WindsorContainer(); Container.Kernel.ComponentModelBuilder.AddContributor(new TransientEqualizer()); Container.Install(Target); Container.Register(Component.For<IBlobClient>().Instance(MockRepository.GenerateMock<IBlobClient>())); Container.Register(Component.For<IRepositoryContainer>().Instance(MockRepository.GenerateMock<IRepositoryContainer>())); Container.Register(Component.For<IPermissionFactory>().Instance(MockRepository.GenerateMock<IPermissionFactory>())); var handler = Container.GetHandlersFor(typeof(IFileProcessor)).Single(); var context = new CreationContext(handler, new LifecycledComponentsReleasePolicy(Container.Kernel), typeof(IFileProcessor), null, null, null); handler.ComponentModel.Name = typeof(ServiceOfferingController).FullName; var actual = handler.Resolve(context); Assert.IsInstanceOfType(actual, typeof(ServiceOfferingFileProcessor)); }
public void Init_RegisterComponentForIQueryableSessionWithLifeStylePerWebRequest() { IWindsorContainer container = new WindsorContainer(); var stubNHibCong = NHibernateHelper.GenerateStubConfiguration(); var persistenceFacility = new PersistenceFacility(stubNHibCong); var facility = persistenceFacility as IFacility; facility.Init(container.Kernel, null); var registeredComponents = container.GetImplementationTypesFor(typeof(IQueryableSession <>)); Assert.AreEqual(1, registeredComponents.Length); var sessionHandler = container.GetHandlersFor(typeof(IQueryableSession <>)).First(); Assert.AreEqual(LifestyleType.PerWebRequest, sessionHandler.ComponentModel.LifestyleType); }
public void Init_RegisterComponentForISessionWithLifeStylePerWebRequest() { IWindsorContainer container = new WindsorContainer(); var stubNHibCong = NHibernateHelper.GenerateStubConfiguration(); var persistenceFacility = new PersistenceFacility(stubNHibCong); var facility = persistenceFacility as IFacility; facility.Init(container.Kernel, null); var registeredComponents = container.GetImplementationTypesFor(typeof(ISession)); Assert.IsTrue(registeredComponents.Length >= 1, "There should be at least one component registeres to resolve the ISession interface."); var sessionHandler = container.GetHandlersFor(typeof(ISession)).First(); Assert.AreEqual(LifestyleType.PerWebRequest, sessionHandler.ComponentModel.LifestyleType); }
public void GivenRegistrationsInstalled_AndRequestingComponentIsUnknown_WhenResolve_ThenReturnNullYieldsException() { Container = new WindsorContainer(); Container.Kernel.ComponentModelBuilder.AddContributor(new TransientEqualizer()); Container.Install(Target); Container.Register(Component.For<IBlobClient>().Instance(MockRepository.GenerateMock<IBlobClient>())); Container.Register(Component.For<IRepositoryContainer>().Instance(MockRepository.GenerateMock<IRepositoryContainer>())); Container.Register(Component.For<IPermissionFactory>().Instance(MockRepository.GenerateMock<IPermissionFactory>())); var handler = Container.GetHandlersFor(typeof(IFileProcessor)).Single(); var context = new CreationContext(handler, new LifecycledComponentsReleasePolicy(Container.Kernel), typeof(IFileProcessor), null, null, null); Target.ExpectException<ComponentActivatorException>(() => handler.Resolve(context)); }