public void Can_register_service_level_component_at_service_scope_creation_and_resolve_in_service_scope() { var hostScope = new ContainerBuilder().Build(ContainerBuildOptions.Default).BeginLifetimeScope(DreamContainerScope.Host); var serviceScope = hostScope.BeginLifetimeScope(DreamContainerScope.Service, b => b.RegisterType<Foo>().As<IFoo>().ServiceScoped()); var foo = serviceScope.Resolve<IFoo>(); Assert.IsNotNull(foo); }
public void Cannot_resolve_RequestScoped_component_registered_at_service_scope_creation_in_service_scope() { var hostScope = new ContainerBuilder().Build(ContainerBuildOptions.Default).BeginLifetimeScope(DreamContainerScope.Host); var serviceScope = hostScope.BeginLifetimeScope(DreamContainerScope.Service, b => b.RegisterType<Foo>().As<IFoo>().RequestScoped()); try { var foo = serviceScope.Resolve<IFoo>(); } catch(DependencyResolutionException e) { return; } Assert.Fail("resolved component in wrong scope"); }
public void Build_SingleActionRegistered() { var builder = new ConfigurationActionBuilder(); builder.Add(b => b.RegisterType<StubDependency1Impl1>().As<IStubDependency1>()); var built = builder.Build(); var container = new ContainerBuilder().Build(); using (var scope = container.BeginLifetimeScope(built)) { Assert.IsInstanceOf<StubDependency1Impl1>(scope.Resolve<IStubDependency1>(), "The registered lambda did not execute."); } }
public void Last_registration_wins() { var hostScope = new ContainerBuilder().Build(ContainerBuildOptions.Default).BeginLifetimeScope(DreamContainerScope.Host); var serviceScope = hostScope.BeginLifetimeScope(DreamContainerScope.Service, b => { b.RegisterType<Foo>().As<IFoo>().ServiceScoped(); b.RegisterType<Fu>().As<IFoo>().ServiceScoped(); }); var foo = serviceScope.Resolve<IFoo>(); Assert.AreEqual(typeof(Fu), foo.GetType()); }
public void Last_module_wins() { var hostScope = new ContainerBuilder().Build(ContainerBuildOptions.None).BeginLifetimeScope(DreamContainerScope.Host); var serviceScope = hostScope.BeginLifetimeScope(DreamContainerScope.Service, b => { b.RegisterModule(new FooModule()); b.RegisterModule(new FuModule()); }); var foo = serviceScope.Resolve<IFoo>(); Assert.AreEqual(typeof(Fu), foo.GetType()); }