public void ImplementsIContainerAccessor()
        {
            var httpApplicationByConventions = new HttpApplicationByConventions();

            var containerAccessor = httpApplicationByConventions as IContainerAccessor;

            Assert.IsNotNull(containerAccessor);
        }
        public void Application_Start_InstallTheContainer()
        {
            var windsorContainer = MockRepository.GenerateMock<IWindsorContainer>();

            var httpApplicationByConventions = new HttpApplicationByConventions(windsorContainer);
            httpApplicationByConventions.Application_Start();

            windsorContainer.AssertWasCalled(m => m.Install(Arg<IWindsorInstaller[]>.Is.NotNull));
        }
        public void Application_End_DisposeTheContainer()
        {
            var windsorContainer = MockRepository.GenerateMock<IWindsorContainer>();

            var httpApplicationByConventions = new HttpApplicationByConventions(windsorContainer);
            httpApplicationByConventions.Application_End();

            windsorContainer.AssertWasCalled(m => m.Dispose());
        }
        public void Application_Start_RegisterTheNHibernateSessionPerRequestFilterAsGlobalFilter()
        {
            var stubWindsorContainer = MockRepository.GenerateStub<IWindsorContainer>();
            GlobalFilters.Filters.Clear();

            var httpApplicationByConventions = new HttpApplicationByConventions(stubWindsorContainer);
            httpApplicationByConventions.Application_Start();

            IEnumerable<Filter> sessionFilters = from f in GlobalFilters.Filters
                                                 where f.Instance.GetType().Equals(typeof(NHibernateSessionPerRequestFilter))
                                                 select f;
            Assert.AreEqual(1, sessionFilters.Count());
        }
        public void Application_Start_SetANewDependencyResolver()
        {
            var mockMvcDefaultDependencyResolver = MockRepository.GenerateMock<IDependencyResolver>();
            System.Web.Mvc.DependencyResolver.SetResolver(mockMvcDefaultDependencyResolver);
            var mockKernel = MockRepository.GenerateMock<IKernel>();
            var stubWindsorContainer = MockRepository.GenerateStub<IWindsorContainer>();
            stubWindsorContainer.Stub(s => s.Kernel).Return(mockKernel);

            var httpApplicationByConventions = new HttpApplicationByConventions(stubWindsorContainer);
            httpApplicationByConventions.Application_Start();

            IDependencyResolver currentDependencyResolver = System.Web.Mvc.DependencyResolver.Current;
            Assert.IsNotNull(currentDependencyResolver);
            var windsorDependencyResolver = (WindsorDependencyResolver)currentDependencyResolver;
            Assert.AreEqual(mockMvcDefaultDependencyResolver, windsorDependencyResolver.DefaultMvcResolver);
            Assert.AreEqual(mockKernel, windsorDependencyResolver.Kernel);
        }
        public void New_InstantiateAContainer()
        {
            var httpApplicationByConventions = new HttpApplicationByConventions();

            Assert.IsNotNull(httpApplicationByConventions.Container);
        }