public void CanConfigureAllLinksViaEditLink() { // Arrange ODataModelBuilder builder = GetCommonModel(); var expectedEditLink = "http://server/service/Products(15)"; var products = builder.EntitySet<EntitySetLinkConfigurationTest_Product>("Products"); products.HasEditLink(c => new Uri( string.Format( "http://server/service/Products({0})", c.EntityInstance.ID ) )); var actor = builder.EntitySets.Single(); var model = builder.GetEdmModel(); var productType = model.SchemaElements.OfType<IEdmEntityType>().Single(); var productsSet = model.SchemaElements.OfType<IEdmEntityContainer>().Single().EntitySets().Single(); var productInstance = new EntitySetLinkConfigurationTest_Product { ID = 15 }; var entityContext = new EntityInstanceContext { EdmModel = model, EntitySet = productsSet, EntityType = productType, EntityInstance = productInstance, UrlHelper = new UrlHelper(new HttpRequestMessage()) }; var entitySetLinkBuilderAnnotation = new EntitySetLinkBuilderAnnotation(actor); // Act var editLinkUri = entitySetLinkBuilderAnnotation.BuildEditLink(entityContext); var readLinkUri = entitySetLinkBuilderAnnotation.BuildReadLink(entityContext); var idLink = entitySetLinkBuilderAnnotation.BuildIdLink(entityContext); // Assert Assert.NotNull(editLinkUri); Assert.Equal(expectedEditLink, editLinkUri.ToString()); Assert.NotNull(readLinkUri); Assert.Equal(expectedEditLink, readLinkUri.ToString()); Assert.NotNull(idLink); Assert.Equal(expectedEditLink, idLink); }
public void BuildReadLink_WhenReadLinkIsNotSameAsEditLink(bool followsConventions, object metadataLevel, bool linkEmitted) { _entitySet.HasReadLink(new SelfLinkBuilder <Uri>((context) => new Uri("http://readlink/"), followsConventions)); EntitySetLinkBuilderAnnotation linkBuilder = new EntitySetLinkBuilderAnnotation(_entitySet); Uri generatedReadLink = linkBuilder.BuildReadLink(new EntityInstanceContext(), (ODataMetadataLevel)metadataLevel, new Uri("http://editLink")); if (linkEmitted) { Assert.Equal("http://readlink/", generatedReadLink.AbsoluteUri); } else { Assert.Null(generatedReadLink); } }
public void CanConfigureAllLinksViaEditLink() { // Arrange ODataModelBuilder builder = GetCommonModel(); var expectedEditLink = "http://server/service/Products(15)"; var products = builder.EntitySet <EntitySetLinkConfigurationTest_Product>("Products"); products.HasEditLink(c => new Uri( string.Format( "http://server/service/Products({0})", c.EntityInstance.ID ) )); var actor = builder.EntitySets.Single(); var model = builder.GetEdmModel(); var productType = model.SchemaElements.OfType <IEdmEntityType>().Single(); var productsSet = model.SchemaElements.OfType <IEdmEntityContainer>().Single().EntitySets().Single(); var productInstance = new EntitySetLinkConfigurationTest_Product { ID = 15 }; var entityContext = new EntityInstanceContext { EdmModel = model, EntitySet = productsSet, EntityType = productType, EntityInstance = productInstance, UrlHelper = new UrlHelper(new HttpRequestMessage()) }; var entitySetLinkBuilderAnnotation = new EntitySetLinkBuilderAnnotation(actor); // Act var editLinkUri = entitySetLinkBuilderAnnotation.BuildEditLink(entityContext); var readLinkUri = entitySetLinkBuilderAnnotation.BuildReadLink(entityContext); var idLink = entitySetLinkBuilderAnnotation.BuildIdLink(entityContext); // Assert Assert.NotNull(editLinkUri); Assert.Equal(expectedEditLink, editLinkUri.ToString()); Assert.NotNull(readLinkUri); Assert.Equal(expectedEditLink, readLinkUri.ToString()); Assert.NotNull(idLink); Assert.Equal(expectedEditLink, idLink); }
public void BuildReadLink_WhenReadLinkIsNotSameAsEditLink(bool followsConventions, object metadataLevel, bool linkEmitted) { _entitySet.HasReadLink(new SelfLinkBuilder<Uri>((context) => new Uri("http://readlink/"), followsConventions)); EntitySetLinkBuilderAnnotation linkBuilder = new EntitySetLinkBuilderAnnotation(_entitySet); Uri generatedReadLink = linkBuilder.BuildReadLink(new EntityInstanceContext(), (ODataMetadataLevel)metadataLevel, new Uri("http://editLink")); if (linkEmitted) { Assert.Equal("http://readlink/", generatedReadLink.AbsoluteUri); } else { Assert.Null(generatedReadLink); } }