public void GetPropertyGetter_CreatesGetterPerType() { // Arrange IEdmModel model; IEdmEntityTypeReference reference; GetModel(out model, out reference); string propertyName = "Alias"; // Act Func <object, object> testEntityGetter = TypedEdmStructuredObject.GetOrCreatePropertyGetter( typeof(TestEntity), propertyName, reference, model); Func <object, object> proxyEntityGetter = TypedEdmStructuredObject.GetOrCreatePropertyGetter( typeof(TestEntityGeneratedProxy), propertyName, reference, model); // Assert Assert.NotSame(testEntityGetter, proxyEntityGetter); }
public void GetPropertyGetter_Caches_PropertyGetter() { // Arrange Mock <IEdmStructuredTypeReference> mockEdmTypeReference1 = new Mock <IEdmStructuredTypeReference>(); Mock <IEdmStructuredTypeReference> mockEdmTypeReference2 = new Mock <IEdmStructuredTypeReference>(); Mock <IEdmStructuredType> mockEdmType = new Mock <IEdmStructuredType>(); Mock <IEdmProperty> mockProperty = new Mock <IEdmProperty>(); mockEdmType.Setup(t => t.FindProperty("Property")).Returns(mockProperty.Object); mockEdmTypeReference1.Setup(t => t.Definition).Returns(mockEdmType.Object); mockEdmTypeReference2.Setup(t => t.Definition).Returns(mockEdmType.Object); IEdmModel model = new Mock <EdmModel>().Object; Func <object, object> getter1 = TypedEdmStructuredObject.GetOrCreatePropertyGetter( typeof(TestEntity), "Property", mockEdmTypeReference1.Object, model); Func <object, object> getter2 = TypedEdmStructuredObject.GetOrCreatePropertyGetter( typeof(TestEntity), "Property", mockEdmTypeReference2.Object, model); // Act & Assert Assert.Same(getter1, getter2); }
public void GetPropertyGetter_WorksWithAliasedPropertiesAndDynamicProxies() { // Arrange IEdmModel model; IEdmEntityTypeReference reference; GetModel(out model, out reference); string propertyName = "Alias"; // Act Func <object, object> testEntityGetter = TypedEdmStructuredObject.GetOrCreatePropertyGetter( typeof(TestEntityGeneratedProxy), propertyName, reference, model); // Assert Assert.NotNull(testEntityGetter); }