Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public void ParsesEmpty()
        {
            var context = new IncludingContext(Enumerable.Empty <KeyValuePair <string, string> >());

            var actual = context.Includes;

            Assert.Equal(Enumerable.Empty <IncludingProperty>(), actual);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 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());
     }
 }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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"]);
        }
Exemplo n.º 8
0
        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"]);
        }
Exemplo n.º 9
0
        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());
        }