protected ResponseSerializer <T> GetResponseSerializer <T>(List <List <RelationshipAttribute> > inclusionChains = null, Dictionary <string, object> metaDict = null, TopLevelLinks topLinks = null, ResourceLinks resourceLinks = null, RelationshipLinks relationshipLinks = null) where T : class, IIdentifiable { var meta = GetMetaBuilder <T>(metaDict); var link = GetLinkBuilder(topLinks, resourceLinks, relationshipLinks); var includeConstraints = GetIncludeConstraints(inclusionChains); var includedBuilder = GetIncludedBuilder(); var fieldsToSerialize = GetSerializableFields(); ResponseResourceObjectBuilder resourceObjectBuilder = new ResponseResourceObjectBuilder(link, includedBuilder, includeConstraints, _resourceGraph, GetSerializerSettingsProvider()); return(new ResponseSerializer <T>(meta, link, includedBuilder, fieldsToSerialize, resourceObjectBuilder, new JsonApiOptions())); }
public void Build_RelationshipNotIncludedAndLinksDisabled_NoRelationshipObject() { // Arrange var resource = new OneToManyPrincipal { Id = 10 }; ResponseResourceObjectBuilder builder = GetResponseResourceObjectBuilder(); // Act ResourceObject resourceObject = builder.Build(resource, relationships: _relationshipsForBuild); // Assert Assert.Null(resourceObject.Relationships); }
public void Build_RelationshipNotIncludedAndLinksEnabled_RelationshipEntryWithLinks() { // Arrange var resource = new OneToManyPrincipal { Id = 10 }; ResponseResourceObjectBuilder builder = GetResponseResourceObjectBuilder(relationshipLinks: DummyRelationshipLinks); // Act ResourceObject resourceObject = builder.Build(resource, relationships: _relationshipsForBuild); // Assert Assert.True(resourceObject.Relationships.TryGetValue(RelationshipName, out RelationshipEntry entry)); Assert.Equal("http://www.dummy.com/dummy-relationship-self-link", entry.Links.Self); Assert.Equal("http://www.dummy.com/dummy-relationship-related-link", entry.Links.Related); Assert.False(entry.IsPopulated); }
protected ResponseSerializer <T> GetResponseSerializer <T>(IEnumerable <IEnumerable <RelationshipAttribute> > inclusionChains = null, Dictionary <string, object> metaDict = null, TopLevelLinks topLinks = null, ResourceLinks resourceLinks = null, RelationshipLinks relationshipLinks = null) where T : class, IIdentifiable { IMetaBuilder meta = GetMetaBuilder(metaDict); ILinkBuilder link = GetLinkBuilder(topLinks, resourceLinks, relationshipLinks); IEnumerable <IQueryConstraintProvider> includeConstraints = GetIncludeConstraints(inclusionChains); IIncludedResourceObjectBuilder includedBuilder = GetIncludedBuilder(); IFieldsToSerialize fieldsToSerialize = GetSerializableFields(); IResourceDefinitionAccessor resourceDefinitionAccessor = GetResourceDefinitionAccessor(); IResourceObjectBuilderSettingsProvider settingsProvider = GetSerializerSettingsProvider(); var resourceObjectBuilder = new ResponseResourceObjectBuilder(link, includedBuilder, includeConstraints, ResourceGraph, resourceDefinitionAccessor, settingsProvider); var jsonApiOptions = new JsonApiOptions(); return(new ResponseSerializer <T>(meta, link, includedBuilder, fieldsToSerialize, resourceObjectBuilder, resourceDefinitionAccessor, jsonApiOptions)); }