示例#1
0
        public void InjectionCreatesNewNamedObjectIfNotExisting()
        {
            // Mode 3, no existing object
            MockBuilderContext context = CreateContext();

            MockDependingNamedObject depending = (MockDependingNamedObject)context.HeadOfChain.BuildUp(context, typeof(MockDependingNamedObject), null, null);

            Assert.IsNotNull(depending);
            Assert.IsNotNull(depending.InjectedObject);
        }
        public void InjectionCreatingNewNamedObjectWillOnlyCreateOnce()
        {
            // Mode 3, both flavors
            MockBuilderContext context = CreateContext();

            MockDependingNamedObject depending1 = (MockDependingNamedObject)context.HeadOfChain.BuildUp(context, typeof(MockDependingNamedObject), null, null);
            MockDependingNamedObject depending2 = (MockDependingNamedObject)context.HeadOfChain.BuildUp(context, typeof(MockDependingNamedObject), null, null);

            Assert.AreSame(depending1.InjectedObject, depending2.InjectedObject);
        }
示例#3
0
        public void NamedAndUnnamedObjectsDontCollide()
        {
            MockBuilderContext context   = CreateContext();
            object             dependent = new object();

            context.InnerLocator.Add(new DependencyResolutionLocatorKey(typeof(object), null), dependent);

            MockDependingNamedObject depending = (MockDependingNamedObject)context.HeadOfChain.BuildUp(context, typeof(MockDependingNamedObject), null, null);

            Assert.IsFalse(Object.ReferenceEquals(dependent, depending.InjectedObject));
        }