Exemplo n.º 1
0
        private MockBuilderContext CreateContext(MockConstructorReflectionStrategy mockReflectionStrategy)
        {
            IBuilderStrategy[] strategies =
            {
                new SingletonStrategy(),
                mockReflectionStrategy,
                new CreationStrategy()
            };
            MockBuilderContext context = new MockBuilderContext(strategies);

            context.Policies.SetDefault <ICreationPolicy>(new DefaultCreationPolicy());
            context.Policies.SetDefault <ISingletonPolicy>(new SingletonPolicy(true));
            return(context);
        }
Exemplo n.º 2
0
        public void RelectionStrategyCacheConstructorReflectionInfo()
        {
            MockConstructorReflectionStrategy mockReflectionStrategy = new MockConstructorReflectionStrategy();

            MockBuilderContext context1 = CreateContext(mockReflectionStrategy);
            MockBuilderContext context2 = CreateContext(mockReflectionStrategy);

            int ctorCount = typeof(MockDecoratedCtorObject).GetConstructors().Length;

            // building the object twice should call once to GetMembers and MemberRequiresProcessing
            context1.HeadOfChain.BuildUp(context1, typeof(MockDecoratedCtorObject), null, null);
            context2.HeadOfChain.BuildUp(context2, typeof(MockDecoratedCtorObject), null, null);

            Assert.AreEqual(1, mockReflectionStrategy.GetMembersCalledCount);
            Assert.AreEqual(ctorCount, mockReflectionStrategy.MemberRequiresProcessingCalledCount);
        }
        private MockBuilderContext CreateContext(MockConstructorReflectionStrategy mockReflectionStrategy)
        {
            IBuilderStrategy[] strategies = {
                                                new SingletonStrategy(),
                                                mockReflectionStrategy,
                                                new CreationStrategy()
                                            };
            MockBuilderContext context = new MockBuilderContext(strategies);

            context.Policies.SetDefault<ICreationPolicy>(new DefaultCreationPolicy());
            context.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(true));
            return context;
        }
        public void RelectionStrategyCacheConstructorReflectionInfo()
        {
            MockConstructorReflectionStrategy mockReflectionStrategy = new MockConstructorReflectionStrategy();

            MockBuilderContext context1 = CreateContext(mockReflectionStrategy);
            MockBuilderContext context2 = CreateContext(mockReflectionStrategy);

            int ctorCount = typeof (MockDecoratedCtorObject).GetConstructors().Length;

            // building the object twice should call once to GetMembers and MemberRequiresProcessing
            context1.HeadOfChain.BuildUp(context1, typeof (MockDecoratedCtorObject), null, null);
            context2.HeadOfChain.BuildUp(context2, typeof (MockDecoratedCtorObject), null, null);

            Assert.AreEqual(1, mockReflectionStrategy.GetMembersCalledCount);
            Assert.AreEqual(ctorCount, mockReflectionStrategy.MemberRequiresProcessingCalledCount);
        }