Example #1
0
        public void UsesCustomIdInRelationships()
        {
            var person   = new PersonWithDifferentId(id: "abc", prefill: true);
            var resource = new PersonWithDifferentIdResource();
            var target   = new ResourceSerializer(person, resource,
                                                  GetUri(id: "abc"), DefaultPathBuilder, null, null, null);

            var result = target.Serialize();

            _output.WriteLine(result.ToString());

            var id = result["data"]["relationships"]["job"]["data"].Value <string>("id");

            Assert.Equal(person.Job.CompanyId, id);
        }
        public void UsesCustomIdInRelationships()
        {
            var person   = new PersonWithDifferentId(id: "abc", prefill: true);
            var resource = new PersonWithDifferentIdResource();

            var target = new ResourceSerializer(urlBuilder: new DefaultUrlPathBuilder("/api"));

            var resourceResult = new ResourceResult
            {
                Resource = resource,
                Result   = person
            };

            var result = JToken.Parse(target.Serialize(resourceResult, GetUri(id: "abc").ToString()));

            _output.WriteLine(result.ToString());

            var id = result["data"]["relationships"]["job"]["data"].Value <string>("id");

            Assert.Equal(person.Job.CompanyId, id);
        }
        public void SelfLinkSingleResourceCasing()
        {
            var person = new PersonWithDifferentId(false, "Allen");

            var lowerTarget = new ResourceSerializer(person, new PersonWithDifferentIdResource(),
                                                     GetUri("allen"), DefaultPathBuilder, null, null, null);
            var upperTarget = new ResourceSerializer(person, new PersonWithDifferentIdResource(),
                                                     GetUri("Allen"), DefaultPathBuilder, null, null, null);

            var lowerResult = lowerTarget.Serialize();

            _output.WriteLine(lowerResult.ToString());
            var upperResult = upperTarget.Serialize();

            _output.WriteLine(upperResult.ToString());

            var selfLinkLower = lowerResult["links"].Value <string>("self");
            var selfLinkUpper = upperResult["links"].Value <string>("self");

            Assert.EndsWith("/api/people/allen", selfLinkLower);
            Assert.EndsWith("/api/people/Allen", selfLinkUpper);
        }