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); }
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); }