Exemplo n.º 1
0
        /// <summary>
        /// Creates the default service container.
        /// </summary>
        /// <param name="userServiceProvider">The user service provider.</param>
        /// <param name="appInstance">The app instance.</param>
        /// <returns></returns>
        protected virtual IMonoRailContainer CreateDefaultMonoRailContainer(IServiceProviderEx userServiceProvider,
                                                                            HttpApplication appInstance)
        {
            var container = new DefaultMonoRailContainer(userServiceProvider);

            container.UseServicesFromParent();
            container.InstallPrimordialServices();
            container.Configure(Configuration);

            FireContainerCreated(appInstance, container);

            // Too dependent on Http and MR surroundings services to be moved to Container class
            if (!container.HasService <IServerUtility>())
            {
                container.AddService <IServerUtility>(new ServerUtilityAdapter(appInstance.Context.Server));
            }
            if (!container.HasService <IRoutingEngine>())
            {
                container.AddService <IRoutingEngine>(RoutingModuleEx.Engine);
            }

            container.InstallMissingServices();
            container.StartExtensionManager();

            FireContainerInitialized(appInstance, container);

            return(container);
        }
        public void UseServicesFromParent_WhenParentContainsRoutingEngineService_ServiceAddedToMonoRailContainer()
        {
            var engine = MockRepository.GenerateStub <IRoutingEngine>();
            var parent = MockRepository.GenerateStub <IServiceProvider>();

            parent.Stub(stub => stub.GetService(typeof(IRoutingEngine))).Return(engine);

            var container = new DefaultMonoRailContainer(parent);

            container.UseServicesFromParent();

            Assert.True(container.HasService <IRoutingEngine>());
        }
		public void UseServicesFromParent_WhenParentContainsRoutingEngineService_ServiceAddedToMonoRailContainer()
		{
			IRoutingEngine engine = MockRepository.GenerateStub<IRoutingEngine>();
			IServiceProvider parent = MockRepository.GenerateStub<IServiceProvider>();

			parent.Stub(stub => stub.GetService(typeof(IRoutingEngine))).Return(engine);

			DefaultMonoRailContainer container = new DefaultMonoRailContainer(parent);
			container.UseServicesFromParent();

			Assert.True(container.HasService<IRoutingEngine>());
		}