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);
        }
Example #2
0
        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);
        }
Example #3
0
        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)));
        }