Example #1
0
        public void CreateNewAttributeAlwaysCreatesNewObject()
        {
            MockBuilderContext context;

            context = CreateContext();
            MockRequiresNewObject depending1 = (MockRequiresNewObject)context.HeadOfChain.BuildUp(context, typeof(MockRequiresNewObject), null, null);

            context = CreateContext();
            MockRequiresNewObject depending2 = (MockRequiresNewObject)context.HeadOfChain.BuildUp(context, typeof(MockRequiresNewObject), null, null);

            Assert.IsNotNull(depending1);
            Assert.IsNotNull(depending2);
            Assert.IsNotNull(depending1.Foo);
            Assert.IsNotNull(depending2.Foo);
            Assert.IsFalse(depending1.Foo == depending2.Foo);
        }
        public void NamedAndUnnamedObjectsInLocatorDontGetUsedForCreateNew()
        {
            MockBuilderContext context = CreateContext();
            object             unnamed = new object();
            object             named   = new object();

            context.Locator.Add(new DependencyResolutionLocatorKey(typeof(object), null), unnamed);
            context.Locator.Add(new DependencyResolutionLocatorKey(typeof(object), "Foo"), named);

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

            Assert.IsFalse(depending1.Foo == unnamed);
            Assert.IsFalse(depending2.Foo == unnamed);
            Assert.IsFalse(depending1.Foo == named);
            Assert.IsFalse(depending2.Foo == named);
        }