private static void Configure( string structuralTypeName, IEnumerable <EdmProperty> properties, IEnumerable <PropertyInfo> propertyPath, PrimitivePropertyConfiguration propertyConfiguration) { var property = properties.SingleOrDefault(p => p.GetClrPropertyInfo().IsSameAs(propertyPath.First())); if (property == null) { throw Error.PropertyNotFound(propertyPath.First().Name, structuralTypeName); } if (property.IsUnderlyingPrimitiveType) { propertyConfiguration.Configure(property); } else { Configure( property.ComplexType.Name, property.ComplexType.Properties, new PropertyPath(propertyPath.Skip(1)), propertyConfiguration); } }
public void Configure_should_preserve_the_most_derived_configuration() { var configurationA = CreateConfiguration(); configurationA.ConcurrencyMode = ConcurrencyMode.Fixed; var configurationB = new PrimitivePropertyConfiguration(); configurationB.IsNullable = false; var property = EdmProperty.Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); Assert.Null(property.GetConfiguration()); configurationA.Configure(property); Assert.Equal(ConcurrencyMode.Fixed, ((PrimitivePropertyConfiguration)property.GetConfiguration()).ConcurrencyMode); configurationB.Configure(property); Assert.Equal(ConcurrencyMode.Fixed, ((PrimitivePropertyConfiguration)property.GetConfiguration()).ConcurrencyMode); Assert.Equal(false, ((PrimitivePropertyConfiguration)property.GetConfiguration()).IsNullable); Assert.Equal(GetConfigurationType(), property.GetConfiguration().GetType()); }
public void Configure_should_preserve_the_most_derived_configuration() { var configurationA = CreateConfiguration(); configurationA.ConcurrencyMode = EdmConcurrencyMode.Fixed; var configurationB = new PrimitivePropertyConfiguration(); configurationB.IsNullable = false; var property = new EdmProperty().AsPrimitive(); Assert.Null(property.GetConfiguration()); configurationA.Configure(property); Assert.Equal(EdmConcurrencyMode.Fixed, ((PrimitivePropertyConfiguration)property.GetConfiguration()).ConcurrencyMode); configurationB.Configure(property); Assert.Equal(EdmConcurrencyMode.Fixed, ((PrimitivePropertyConfiguration)property.GetConfiguration()).ConcurrencyMode); Assert.Equal(false, ((PrimitivePropertyConfiguration)property.GetConfiguration()).IsNullable); Assert.Equal(GetConfigurationType(), property.GetConfiguration().GetType()); }