/// <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>()); }