private IContainer CreateHostContainer() { var hostContainer = CoeveryStarter.CreateHostContainer(ContainerRegistrations); var host = hostContainer.Resolve <ICoeveryHost>(); host.Initialize(); return(hostContainer); }
public void MostRecentlyRegisteredServiceReturnsFromSingularResolve() { var container = CoeveryStarter.CreateHostContainer(builder => { builder.RegisterType <Component1>().As <IServiceA>(); builder.RegisterType <Component2>().As <IServiceA>(); }); var service = container.Resolve <IServiceA>(); Assert.That(service, Is.Not.Null); Assert.That(service, Is.TypeOf <Component2>()); }
public void ContainerResolvesServicesInSameOrderTheyAreRegistered() { var container = CoeveryStarter.CreateHostContainer(builder => { builder.RegisterType <Component1>().As <IServiceA>(); builder.RegisterType <Component2>().As <IServiceA>(); }); var services = container.Resolve <IEnumerable <IServiceA> >(); Assert.That(services.Count(), Is.EqualTo(2)); Assert.That(services.First(), Is.TypeOf <Component1>()); Assert.That(services.Last(), Is.TypeOf <Component2>()); }
public void Init() { var clock = new StubClock(); var appDataFolder = new StubAppDataFolder(clock); _controllerBuilder = new ControllerBuilder(); _routeCollection = new RouteCollection(); _modelBinderDictionary = new ModelBinderDictionary(); _viewEngineCollection = new ViewEngineCollection { new WebFormViewEngine() }; _container = CoeveryStarter.CreateHostContainer( builder => { builder.RegisterInstance(new StubShellSettingsLoader()).As <IShellSettingsManager>(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>(); builder.RegisterType <ModelBinderPublisher>().As <IModelBinderPublisher>(); builder.RegisterType <ShellContextFactory>().As <IShellContextFactory>(); builder.RegisterType <StubExtensionManager>().As <IExtensionManager>(); builder.RegisterType <StubVirtualPathMonitor>().As <IVirtualPathMonitor>(); builder.RegisterInstance(appDataFolder).As <IAppDataFolder>(); builder.RegisterInstance(_controllerBuilder); builder.RegisterInstance(_routeCollection); builder.RegisterInstance(_modelBinderDictionary); builder.RegisterInstance(_viewEngineCollection); builder.RegisterAutoMocking() .Ignore <IExtensionFolders>() .Ignore <IRouteProvider>() .Ignore <IHttpRouteProvider>() .Ignore <IModelBinderProvider>(); }); _lifetime = _container.BeginLifetimeScope(); _container.Mock <IContainerProvider>() .SetupGet(cp => cp.ApplicationContainer).Returns(_container); _container.Mock <IContainerProvider>() .SetupGet(cp => cp.RequestLifetime).Returns(_lifetime); _container.Mock <IContainerProvider>() .Setup(cp => cp.EndRequestLifetime()).Callback(() => _lifetime.Dispose()); _container.Mock <IShellDescriptorManager>() .Setup(cp => cp.GetShellDescriptor()).Returns(default(ShellDescriptor)); _container.Mock <ICoeveryShellEvents>() .Setup(e => e.Activated()); _container.Mock <ICoeveryShellEvents>() .Setup(e => e.Terminating()).Callback(() => new object()); }
public void Init() { _hostContainer = CoeveryStarter.CreateHostContainer(builder => { builder.RegisterType <Alpha>().InstancePerDependency(); }); }