public void DuplicateTypeRegistrationThrowsError() { var container = new InfuseContainer(); container.Register <IChat, Chatroom>(LifecycleType.Singleton); container.RegisterSingleton <IPerson, PersonA>(); Assert.Throws <ArgumentException>(() => container.RegisterSingleton <IPerson, PersonB>()); }
public void DuplicateTypeRegistrationOverwritesThePreviousOne() { var container = new InfuseContainer(); container.Register <IChat, Chatroom>(LifecycleType.Singleton); container.RegisterSingleton <IPerson, PersonA>(); container.RegisterSingleton <IPerson, PersonB>(); var person = container.Resolve <IPerson>(); Assert.IsType <PersonB>(person); }
public void RegisterTypeWithParametersAndResolve() { var container = new InfuseContainer(); container.Register <IChat, Chatroom>(LifecycleType.Singleton); container.RegisterSingleton <IPerson, PersonA>(); var person = container.Resolve <IPerson>(); Assert.NotNull(person); }
public void RegisterAsSingletonUsingExtensionAndResolve() { var container = new InfuseContainer(); container.RegisterSingleton <Logger, Logger>(); var logger = container.Resolve <Logger>(); Assert.NotNull(logger); Assert.IsType <Logger>(logger); }
public static IContainer ConfigureInfuseContainer() { IContainer infuseContainer = new InfuseContainer(); infuseContainer.RegisterSingleton <IHomeRepository, HomeRepository>(); infuseContainer.Register <HomeController, HomeController>(); infuseContainer.Register <AccountController, AccountController>(); infuseContainer.Register <ManageController, ManageController>(); infuseContainer.Register <MoviesController, MoviesController>(); infuseContainer.Register <HelloWorldController, HelloWorldController>(); return(infuseContainer); }
public void SingletonsHasOnlyOneInstancePerContainer() { IContainer container = new InfuseContainer(); container.Register <IChat, Chatroom>(LifecycleType.Singleton); container.RegisterSingleton <IPerson, PersonA>(); string talkMsg = "Hello"; var a = container.Resolve <IPerson>(); var chat = container.Resolve <IChat>(); a.Say(talkMsg); Assert.Equal(talkMsg, chat.Receive()); }
public void RegisterTransientTypeWithinASingletonTypeGetsAutoPromotedToSingleton() { IContainer container = new InfuseContainer(); container.RegisterSingleton <IPerson, PersonA>(); container.Register <IChat, Chatroom>(LifecycleType.Transient); string talkMsg = "Hello"; var a = container.Resolve <IPerson>(); var b = container.Resolve <IPerson>(); Assert.Same(a, b); a.Say(talkMsg); Assert.Equal(talkMsg, b.Listen()); }