Beispiel #1
0
        private MockBuilderContext CreateContext(MockMethodReflectionStrategy 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);
        }
Beispiel #2
0
        public void RelectionStrategyCacheMethodReflectionInfo()
        {
            MockMethodReflectionStrategy mockReflectionStrategy = new MockMethodReflectionStrategy();

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

            int methodsCount = typeof(MockDecoratedMethodObject).GetMethods().Length;

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

            Assert.AreEqual(1, mockReflectionStrategy.GetMembersCalledCount);
            Assert.AreEqual(methodsCount, mockReflectionStrategy.MemberRequiresProcessingCalledCount);
        }
        private MockBuilderContext CreateContext(MockMethodReflectionStrategy 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 RelectionStrategyCacheMethodReflectionInfo()
        {
            MockMethodReflectionStrategy mockReflectionStrategy = new MockMethodReflectionStrategy();

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

            int methodsCount = typeof (MockDecoratedMethodObject).GetMethods().Length;

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

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