public void IncludedResourceOnlyOnce() { var job = new CompanyWithCustomers(id: "457", prefill: true); var person = new Person(true) { Friends = new List <Person> { new Person(id: "124", prefill: true) { Job = job }, new Person(id: "125", prefill: true) { Job = job } } }; var include = new IncludingContext(GetQuery("include", "friends.job")); var target = new ResourceSerializer(person, DefaultResource, GetUri(id: "123"), DefaultPathBuilder, null, include); var result = target.Serialize(); _output.WriteLine(result.ToString()); var included = result["included"] as JArray; Assert.Equal(3, included.Count); }
public void ParsesEmpty() { var context = new IncludingContext(Enumerable.Empty <KeyValuePair <string, string> >()); var actual = context.Includes; Assert.Equal(Enumerable.Empty <IncludingProperty>(), actual); }
internal void ParsesCorrectly(string query, string[] includes) { var context = new IncludingContext(GetQuery(query)); var expected = includes.Select((s) => new { Name = s }).ToList(); var actual = context.Includes.Select(p => new { p.Name }).ToList(); Assert.Equal(expected, actual); }
private ResourceGraphPathSet IncludedGraphPathsFromContext(IncludingContext context) { if (context == null) { return(new ResourceGraphPathSet.All()); } else if (context.Includes != null && context.Includes.Any()) { return(new ResourceGraphPathSet(_includingContext.Includes.Select(i => i.Name))); } else { return(new ResourceGraphPathSet.All()); } }
public ResourceSerializer( object value, ApiResource type, Uri baseUrl, IUrlPathBuilder urlBuilder, PaginationContext paginationContext, IncludingContext includingContext) { _urlBuilder = urlBuilder; _resource = type; _value = value; _baseUrl = baseUrl; _paginationContext = paginationContext; _includingContext = includingContext; _includedGraphPaths = IncludedGraphPathsFromContext(includingContext); }
public void NoIncludedRelationshipData() { var includes = new IncludingContext(); includes.DisableDefaultIncluded = true; var target = new ResourceSerializer(DefaultObject, DefaultResource, GetUri(id: "123"), DefaultPathBuilder, null, includes); var result = target.Serialize(); _output.WriteLine(result.ToString()); var included = result["included"] as JArray; Assert.Null(included); }
public void IncludedRelationshipIdentifierObjects() { var includes = new IncludingContext(); includes.DisableDefaultIncluded = true; var target = new ResourceSerializer(DefaultObject, DefaultResource, GetUri(id: "123"), DefaultPathBuilder, null, includes); var result = target.Serialize(); _output.WriteLine(result.ToString()); var relationships = result["data"]["relationships"]; var job = relationships["job"]; Assert.NotNull(job["data"]); }
public void OmitRelationshipIdentifierObjectsWithoutProperty() { var includes = new IncludingContext(); includes.DisableDefaultIncluded = true; var target = new ResourceSerializer(DefaultObject, DefaultResource, GetUri(id: "123"), DefaultPathBuilder, null, includes); var result = target.Serialize(); _output.WriteLine(result.ToString()); var relationships = result["data"]["relationships"]; var secretFriends = relationships["secret-friends"]; Assert.Null(secretFriends["data"]); }
public void OnlyIncludedRelationshipData() { var includes = new IncludingContext(); includes.DisableDefaultIncluded = true; var includeParam = new KeyValuePair <string, string>("include", "job"); includes.SetIncludes(new List <KeyValuePair <string, string> >() { includeParam }); var target = new ResourceSerializer(DefaultObject, DefaultResource, GetUri(id: "123"), DefaultPathBuilder, null, includes); var result = target.Serialize(); _output.WriteLine(result.ToString()); var included = result["included"] as JArray; Assert.Equal(1, included.Count()); }