public void FunctionLink_PreservesFollowsConventions(bool value) { // Arrange ODataModelBuilder builder = ODataModelBuilderMocks.GetModelBuilderMock <ODataModelBuilder>(); FunctionConfiguration configuration = new FunctionConfiguration(builder, "IgnoreFunction"); configuration.Returns <int>(); Mock <IEdmTypeConfiguration> bindingParameterTypeMock = new Mock <IEdmTypeConfiguration>(); bindingParameterTypeMock.Setup(o => o.Kind).Returns(EdmTypeKind.Entity); Type entityType = typeof(object); bindingParameterTypeMock.Setup(o => o.ClrType).Returns(entityType); configuration.SetBindingParameter("IgnoreParameter", bindingParameterTypeMock.Object); configuration.HasFunctionLink((a) => { throw new NotImplementedException(); }, followsConventions: value); builder.AddOperation(configuration); builder.AddEntityType(entityType); // Act IEdmModel model = builder.GetEdmModel(); // Assert var function = Assert.Single(model.SchemaElements.OfType <IEdmFunction>()); OperationLinkBuilder functionLinkBuilder = model.GetOperationLinkBuilder(function); Assert.NotNull(functionLinkBuilder); Assert.Equal(value, functionLinkBuilder.FollowsConventions); }
/// <summary> /// Creates a new Function that sometimes binds to Collection(EntityType). /// </summary> /// <param name="name">The name of the Function</param> /// <returns>A <see cref="FunctionConfiguration"/> to allow further configuration of the Function.</returns> public FunctionConfiguration TransientFunction(string name) { Contract.Assert(ModelBuilder != null); FunctionConfiguration configuration = ModelBuilder.Function(name); configuration.SetBindingParameter(BindingParameterConfiguration.DefaultBindingParameterName, this, alwaysBindable: false); return(configuration); }
/// <summary> /// Creates a new Function that binds to Collection(EntityType). /// </summary> /// <param name="name">The name of the Function</param> /// <returns>A <see cref="FunctionConfiguration"/> to allow further configuration of the Function.</returns> public FunctionConfiguration Function(string name) { Contract.Assert(ModelBuilder != null); FunctionConfiguration configuration = ModelBuilder.Function(name); configuration.SetBindingParameter(BindingParameterConfiguration.DefaultBindingParameterName, this); return(configuration); }
/// <summary> /// Create a Function that binds to this EntityType. /// </summary> /// <param name="name">The name of the function.</param> /// <returns>The FunctionConfiguration to allow further configuration of the new Function.</returns> public FunctionConfiguration Function(string name) { Contract.Assert(_configuration != null && _configuration.ModelBuilder != null); FunctionConfiguration function = _configuration.ModelBuilder.Function(name); function.SetBindingParameter(BindingParameterConfiguration.DefaultBindingParameterName, _configuration); return(function); }
public void HasFunctionLink_SetsFollowsConventions(bool value) { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); FunctionConfiguration function = new FunctionConfiguration(builder, "IgnoreFunction"); Mock <IEdmTypeConfiguration> bindingParameterTypeMock = new Mock <IEdmTypeConfiguration>(); bindingParameterTypeMock.Setup(o => o.Kind).Returns(EdmTypeKind.Entity); IEdmTypeConfiguration bindingParameterType = bindingParameterTypeMock.Object; function.SetBindingParameter("IgnoreParameter", bindingParameterType); // Act function.HasFunctionLink((a) => { throw new NotImplementedException(); }, followsConventions: value); // Assert Assert.Equal(value, function.FollowsConventions); }