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