private void RegisterComponentsImplemtedByFerrari(User user) { Kernel.Register( Component.For<User>().Named("currentUser").Instance(user), Component.For<AbstractCarProviderFactory>().Named("AbstractCarProviderFactory"), Component.For<ICarProvider>() .ImplementedBy<FerrariProvider>() .Attribute("factoryId").Eq("AbstractCarProviderFactory") .Attribute("factoryCreate").Eq("Create") ); }
public void Can_register_without_providing_an_implementation() { var user = new User { FiscalStability = FiscalStability.DirtFarmer }; Kernel.Register( Component.For<User>().Named("currentUser").Instance(user), Component.For<AbstractCarProviderFactory>().Named("AbstractCarProviderFactory"), Component.For<ICarProvider>() .Attribute("factoryId").Eq("AbstractCarProviderFactory") .Attribute("factoryCreate").Eq("Create") ); Assert.IsInstanceOf(typeof(HondaProvider), Kernel.Resolve<ICarProvider>()); }
public void Can_properly_resolve_component_from_UsingFactory() { var user = new User { FiscalStability = FiscalStability.DirtFarmer }; Kernel.Register( Component.For<User>().Instance(user), Component.For<AbstractCarProviderFactory>(), Component.For<ICarProvider>() .UsingFactory((AbstractCarProviderFactory f) => f.Create(Kernel.Resolve<User>())) ); Assert.IsInstanceOf<HondaProvider>(Kernel.Resolve<ICarProvider>()); }