public void GenerateFunctionLink_GeneratesLinkWithCast_IfEntitySetTypeDoesnotMatchActionEntityType_ForSingleton() { // Arrange HttpRequestMessage request = GetODataRequest(_model.Model); var serializerContext = new ODataSerializerContext { Model = _model.Model, NavigationSource = _model.Mary, Url = request.GetUrlHelper() }; var entityContext = new EntityInstanceContext(serializerContext, _model.SpecialCustomer.AsReference(), new { ID = 42 }); // Act Uri link = entityContext.GenerateFunctionLink(_model.IsSpecialCustomerUpgraded); // Assert Assert.Equal("http://localhost/Mary/NS.SpecialCustomer/IsSpecialUpgraded(entity=@entity)", link.AbsoluteUri); }
public void GenerateFunctionLink_GeneratesLinkWithoutCast_IfEntitySetTypeMatchesActionEntityType() { // Arrange HttpRequestMessage request = GetODataRequest(_model.Model); var serializerContext = new ODataSerializerContext { Model = _model.Model, NavigationSource = _model.Customers, Url = request.GetUrlHelper() }; var entityContext = new EntityInstanceContext(serializerContext, _model.Customer.AsReference(), new { ID = 42 }); // Act Uri link = entityContext.GenerateFunctionLink(_model.IsCustomerUpgraded); // Assert Assert.Equal("http://localhost/Customers(42)/IsUpgradedWithParam(entity=@entity,city=@city)", link.AbsoluteUri); }
public void GenerateFunctionLink_GeneratesLinkWithDownCast_IfElementTypeDerivesFromBindingParameterType_ForSingleton() { // Arrange IEdmSingleton me = new EdmSingleton(_model.Container, "Me", _model.SpecialCustomer); HttpRequestMessage request = GetODataRequest(_model.Model); var serializerContext = new ODataSerializerContext { Model = _model.Model, NavigationSource = me, Url = request.GetUrlHelper() }; var entityContext = new EntityInstanceContext(serializerContext, _model.SpecialCustomer.AsReference(), new { ID = 42 }); // Act Uri link = entityContext.GenerateFunctionLink(_model.IsCustomerUpgraded); // Assert Assert.Equal("http://localhost/Me/NS.Customer/NS.IsUpgradedWithParam(city=@city)", link.AbsoluteUri); }
public void GenerateFunctionLink_GeneratesLinkWithDownCast_IfElementTypeDerivesFromBindingParameterType_ForSingleton() { // Arrange IEdmSingleton me = new EdmSingleton(_model.Container, "Me", _model.SpecialCustomer); HttpRequestMessage request = GetODataRequest(_model.Model); var serializerContext = new ODataSerializerContext { Model = _model.Model, NavigationSource = me, Url = request.GetUrlHelper() }; var entityContext = new EntityInstanceContext(serializerContext, _model.SpecialCustomer.AsReference(), new { ID = 42 }); // Act Uri link = entityContext.GenerateFunctionLink(_model.IsCustomerUpgraded); // Assert Assert.Equal("http://localhost/Me/NS.Customer/IsUpgradedWithParam(entity=@entity,city=@city)", link.AbsoluteUri); }
public void GenerateFunctionLink_GeneratesLinkWithDownCast_IfElementTypeDerivesFromBindingParameterType() { // Arrange IEdmEntitySet specialCustomers = new EdmEntitySet(_model.Container, "SpecialCustomers", _model.SpecialCustomer); HttpRequestMessage request = GetODataRequest(_model.Model); var serializerContext = new ODataSerializerContext { Model = _model.Model, EntitySet = specialCustomers, Url = request.GetUrlHelper() }; var entityContext = new EntityInstanceContext(serializerContext, _model.SpecialCustomer.AsReference(), new { ID = 42 }); // Act Uri link = entityContext.GenerateFunctionLink(_model.IsCustomerUpgraded.Function); // Assert Assert.Equal("http://localhost/SpecialCustomers(42)/NS.Customer/IsUpgraded(entity=@entity)", link.AbsoluteUri); }