public void NonbindingParameterConfigurationSupportsParameterTypeAs(Type type, bool isNullable) { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); builder.EntityType <Customer>(); builder.ComplexType <Address>(); builder.EnumType <Color>(); // Act Type underlyingType = TypeHelper.GetUnderlyingTypeOrSelf(type); IEdmTypeConfiguration edmTypeConfiguration = builder.GetTypeConfigurationOrNull(type); if (underlyingType.IsEnum) { edmTypeConfiguration = builder.GetTypeConfigurationOrNull(underlyingType); if (edmTypeConfiguration != null && isNullable) { edmTypeConfiguration = ((EnumTypeConfiguration)edmTypeConfiguration).GetNullableEnumTypeConfiguration(); } } NonbindingParameterConfiguration parameter = new NonbindingParameterConfiguration("name", edmTypeConfiguration); // Assert Assert.Equal(isNullable, parameter.OptionalParameter); }
/// <summary> /// Adds a new non-binding parameter. /// </summary> public ParameterConfiguration AddParameter(string name, IEdmTypeConfiguration parameterType) { ParameterConfiguration parameter = new NonbindingParameterConfiguration(name, parameterType); _parameters.Add(parameter); return(parameter); }
public void NonbindingParameterConfigurationSupportsParameterTypeAs(Type type, bool isNullable) { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); builder.EntityType<Customer>(); builder.ComplexType<Address>(); builder.EnumType<Color>(); // Act Type underlyingType = TypeHelper.GetUnderlyingTypeOrSelf(type); IEdmTypeConfiguration edmTypeConfiguration = builder.GetTypeConfigurationOrNull(type); if (underlyingType.IsEnum) { edmTypeConfiguration = builder.GetTypeConfigurationOrNull(underlyingType); if (edmTypeConfiguration != null && isNullable) { edmTypeConfiguration = ((EnumTypeConfiguration)edmTypeConfiguration).GetNullableEnumTypeConfiguration(); } } NonbindingParameterConfiguration parameter = new NonbindingParameterConfiguration("name", edmTypeConfiguration); // Assert Assert.Equal(isNullable, parameter.OptionalParameter); }
public void NonbindingParameterConfigurationThrowsWhenParameterTypeIsEntity() { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); builder.EntityType<Customer>(); // Act & Assert ArgumentException exception = Assert.Throws<ArgumentException>(() => { NonbindingParameterConfiguration configuration = new NonbindingParameterConfiguration("name", builder.GetTypeConfigurationOrNull(typeof(Customer))); }); Assert.True(exception.Message.Contains(string.Format("'{0}'", typeof(Customer).FullName))); Assert.Equal("parameterType", exception.ParamName); }
public void NonbindingParameterConfigurationThrowsWhenParameterTypeIsEntity() { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); builder.EntityType <Customer>(); // Act & Assert ArgumentException exception = Assert.Throws <ArgumentException>(() => { NonbindingParameterConfiguration configuration = new NonbindingParameterConfiguration("name", builder.GetTypeConfigurationOrNull(typeof(Customer))); }); Assert.True(exception.Message.Contains(string.Format("'{0}'", typeof(Customer).FullName))); Assert.Equal("parameterType", exception.ParamName); }
public void NonbindingParameterConfigurationSupportsParameterCollectionTypeAs(Type type, bool isNullable) { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); builder.EntityType<Customer>(); builder.ComplexType<Address>(); builder.EnumType<Color>(); Type elementType; Assert.True(type.IsCollection(out elementType)); // Act Type underlyingType = TypeHelper.GetUnderlyingTypeOrSelf(elementType); IEdmTypeConfiguration elementTypeConfiguration = builder.GetTypeConfigurationOrNull(underlyingType); CollectionTypeConfiguration collectionType = new CollectionTypeConfiguration(elementTypeConfiguration, typeof(IEnumerable<>).MakeGenericType(elementType)); NonbindingParameterConfiguration parameter = new NonbindingParameterConfiguration("name", collectionType); // Assert Assert.Equal(isNullable, parameter.OptionalParameter); }
public void NonbindingParameterConfigurationSupportsParameterCollectionTypeAs(Type type, bool isNullable) { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); builder.EntityType <Customer>(); builder.ComplexType <Address>(); builder.EnumType <Color>(); Type elementType; Assert.True(type.IsCollection(out elementType)); // Act Type underlyingType = TypeHelper.GetUnderlyingTypeOrSelf(elementType); IEdmTypeConfiguration elementTypeConfiguration = builder.GetTypeConfigurationOrNull(underlyingType); CollectionTypeConfiguration collectionType = new CollectionTypeConfiguration(elementTypeConfiguration, typeof(IEnumerable <>).MakeGenericType(elementType)); NonbindingParameterConfiguration parameter = new NonbindingParameterConfiguration("name", collectionType); // Assert Assert.Equal(isNullable, parameter.OptionalParameter); }