public void InjectionCreatingNewUnnamedObjectWillOnlyCreateOnce() { // Mode 2, both flavors MockBuilderContext context = CreateContext(); MockDependingObject depending1 = (MockDependingObject)context.HeadOfChain.BuildUp(context, typeof(MockDependingObject), null, null); MockDependingObject depending2 = (MockDependingObject)context.HeadOfChain.BuildUp(context, typeof(MockDependingObject), null, null); Assert.AreSame(depending1.InjectedObject, depending2.InjectedObject); }
public void InjectedDependencyIsReusedWhenDependingObjectIsCreatedTwice() { MockBuilderContext ctx = CreateContext(); ILifetimeContainer container = ctx.Locator.Get <ILifetimeContainer>(); ctx.Policies.SetDefault <ICreationPolicy>(new DefaultCreationPolicy()); ctx.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true)); MockDependingObject obj1 = (MockDependingObject)ctx.HeadOfChain.BuildUp(ctx, typeof(MockDependingObject), null, null); MockDependingObject obj2 = (MockDependingObject)ctx.HeadOfChain.BuildUp(ctx, typeof(MockDependingObject), null, null); Assert.AreSame(obj1.DependentObject, obj2.DependentObject); }
public void AllCreatedDependenciesArePlacedIntoLocatorAndLifetimeContainer() { MockBuilderContext ctx = CreateContext(); ILifetimeContainer container = ctx.Locator.Get <ILifetimeContainer>(); ctx.Policies.SetDefault <ICreationPolicy>(new DefaultCreationPolicy()); ctx.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true)); MockDependingObject obj = (MockDependingObject)ctx.HeadOfChain.BuildUp(ctx, typeof(MockDependingObject), null, null); Assert.AreEqual(2, container.Count); Assert.AreSame(obj, ctx.Locator.Get(new DependencyResolutionLocatorKey(typeof(MockDependingObject), null))); Assert.AreSame(obj.DependentObject, ctx.Locator.Get(new DependencyResolutionLocatorKey(typeof(MockDependentObject), null))); }