public void GenerateNavigationLink_WorksToGenerateExpectedNavigationLink_ForNonContainedNavigation() { // Arrange IEdmEntityType myOrder = (IEdmEntityType)_model.Model.FindDeclaredType("NS.MyOrder"); IEdmNavigationProperty orderLinesProperty = myOrder.NavigationProperties().Single(x => x.Name.Equals("NonContainedOrderLines")); var serializerContext = new ODataSerializerContext { Model = _model.Model, NavigationSource = _model.OrderLines, Path = new ODataPath( new EntitySetPathSegment(_model.Model.FindDeclaredEntitySet("MyOrders")), new KeyValuePathSegment("42"), new NavigationPathSegment(orderLinesProperty), new KeyValuePathSegment("21")), Url = GetODataRequest(_model.Model).GetUrlHelper(), }; var entityContext = new EntityInstanceContext(serializerContext, _model.OrderLine.AsReference(), new { ID = 21 }); // Act Uri uri = entityContext.GenerateSelfLink(false); // Assert Assert.Equal("http://localhost/OrderLines(21)", uri.AbsoluteUri); }
public void GenerateSelfLink_GeneratesExpectedSelfLink(bool includeCast, string expectedIdLink) { HttpRequestMessage request = GetODataRequest(_model.Model); var serializerContext = new ODataSerializerContext { Model = _model.Model, EntitySet = _model.Customers, Url = request.GetUrlHelper() }; var entityContext = new EntityInstanceContext(serializerContext, _model.SpecialCustomer.AsReference(), new { ID = 42 }); string idLink = entityContext.GenerateSelfLink(includeCast); Assert.Equal(expectedIdLink, idLink); }
public void GenerateSelfLink_GeneratesExpectedSelfLink(bool includeCast, string expectedIdLink) { HttpRequestMessage request = GetODataRequest(_model.Model); var serializerContext = new ODataSerializerContext { Model = _model.Model, EntitySet = _model.Customers, Url = request.GetUrlHelper() }; var entityContext = new EntityInstanceContext(serializerContext, _model.SpecialCustomer.AsReference(), new { ID = 42 }); string idLink = entityContext.GenerateSelfLink(includeCast); Assert.Equal(expectedIdLink, idLink); }
private static Uri DefaultLinkFactory(EntityInstanceContext entityContext) { Contract.Requires(entityContext != null); Contract.Ensures(Contract.Result <Uri>() != null); // build the read link using the standard conventions var selfLink = entityContext.GenerateSelfLink(false); var builder = new UriBuilder(selfLink); builder.Path = builder.Path.TrimEnd('/') + "/$value"; return(builder.Uri); }
public void GenerateSelfLink_WorksToGenerateExpectedSelfLink_ForSingleton(bool includeCast, string expectedIdLink) { // 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 var idLink = entityContext.GenerateSelfLink(includeCast); // Assert Assert.Equal(expectedIdLink, idLink.ToString()); }
public void GenerateSelfLink_WorksToGenerateExpectedSelfLink_ForSingleton(bool includeCast, string expectedIdLink) { // 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 var idLink = entityContext.GenerateSelfLink(includeCast); // Assert Assert.Equal(expectedIdLink, idLink.ToString()); }
public void GenerateNavigationLink_WorksToGenerateExpectedNavigationLink_ForNonContainedNavigation() { // Arrange IEdmEntityType myOrder = (IEdmEntityType)_model.Model.FindDeclaredType("NS.MyOrder"); IEdmNavigationProperty orderLinesProperty = myOrder.NavigationProperties().Single(x => x.Name.Equals("NonContainedOrderLines")); var serializerContext = new ODataSerializerContext { Model = _model.Model, NavigationSource = _model.OrderLines, Path = new ODataPath( new EntitySetPathSegment(_model.Model.FindDeclaredEntitySet("MyOrders")), new KeyValuePathSegment("42"), new NavigationPathSegment(orderLinesProperty), new KeyValuePathSegment("21")), Url = GetODataRequest(_model.Model).GetUrlHelper(), }; var entityContext = new EntityInstanceContext(serializerContext, _model.OrderLine.AsReference(), new { ID = 21 }); // Act Uri uri = entityContext.GenerateSelfLink(false); // Assert Assert.Equal("http://localhost/OrderLines(21)", uri.AbsoluteUri); }