예제 #1
0
        private MockBuilderContext CreateContext(MockPropertyReflectionStrategy 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);
        }
예제 #2
0
        public void RelectionStrategyCachePropertyReflectionInfo()
        {
            MockPropertyReflectionStrategy mockReflectionStrategy = new MockPropertyReflectionStrategy();

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

            int propCount = typeof(MockDecoratedPropertyObject).GetProperties().Length;

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

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

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

            int propCount = typeof (MockDecoratedPropertyObject).GetProperties().Length;

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

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