private IWindsorContainer BuildContainerAndRegisterTypes()
        {
            var container = new WindsorContainer();
            container.Kernel.ReleasePolicy = new NoTrackingReleasePolicy();

            // register types from the config file
            IWindsorInstaller[] installers = new[]
                            {
                                Castle.Windsor.Installer.Configuration.FromXmlFile("app_config\\windsor\\components.config")
                            };

            container.Install(installers);

            // Register MVC controllers
            container.Register(Classes.FromAssemblyNamed("CustomController")
                                      .BasedOn<System.Web.Mvc.IController>()
                                      .LifestyleTransient());

            // Register WebApi controllers
            // http://forums.asp.net/t/1727621.aspx?Castle+Windsor+IOC+No+component+for+supporting+the+service+Web+Controllers+HomeController+was+found
            container.Register(Classes.FromAssemblyNamed("CustomController")
                                      .BasedOn<System.Web.Http.Controllers.IHttpController>()
                                      .LifestylePerWebRequest()
                                      .Configure(x => x.Named(x.Implementation.FullName)));

            return container;
        }
        public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            var players = new[] { new Player("Red"), new Player("Blue") };

            container.Register(Component.For<Player[]>().UsingFactoryMethod(() => players));
            container.Register(Component.For<ITurnTaking, INotifyBeginningNextRound>().ImplementedBy<RoundRobinTurns>());
        }
		protected override void RegisterIUserRolesProvider(IWindsorContainer container)
		{
			var registrar = new ChainOfResponsibilityRegistrar(container);

			var types = new[]
		                    {
		                        typeof (PositionTitleUserClaimSetsProvider),
                                typeof (StaffCategoryUserClaimSetsProvider)
		                    };

            registrar.RegisterChainOf<IUserClaimSetsProvider<ClaimsSet, EdFiUserSecurityDetails>, NullUserClaimSetsProvider<ClaimsSet, EdFiUserSecurityDetails>>(types);
		}
        public void InstallsHandlerTypes()
        {
            // Arrange
            var container = new WindsorContainer();
            container.Register(
                Component.For<IDocumentStore>()
                         .Instance(new EmbeddableDocumentStore { RunInMemory = true }.Initialize()));
            // Act
            var handlerTypes = new[] { typeof(AggregateHandler), typeof(AnotherAggregateHandler) };
            var installer = EventStoreInstaller.FromHandlerTypes(handlerTypes);
            container.Install(installer);

            // Assert
            VerifyContainer(new WindsorServiceLocator(container), 2);
        }
 public void Claim_validation_chain_should_have_next()
 {
     var keys = new[]
                    {
                        "IClaimValidator.ViewOperationalDashboard",
                        "IClaimValidator.ViewMyStudents",
                        "IClaimValidator.ManageGoals",
                        "IClaimValidator.ViewAllStudents",
                        "IClaimValidator.ViewAllMetrics",
                        "IClaimValidator.AdministerDashboard",
                        "IClaimValidator.ViewAllTeachers"
                    };
     foreach (var key in keys)
     {
         var foo = containerMock.Resolve<ClaimValidatorBase>(key);
         Assert.NotNull(foo);
     }
 }