public void CompoundDocumentShouldNotDuplicateIncludedResources()
        {
            var r1 = new ResourceWithRelationship
            {
                Id    = 1,
                ToOne = new Resource
                {
                    Id = 10
                }
            };
            var r2 = new ResourceWithRelationship
            {
                Id    = 2,
                ToOne = new Resource
                {
                    Id = 10
                }
            };
            var d = new ResourceDocument(new List <ResourceObject> {
                new ResourceObject(r1, _p), new ResourceObject(r2, _p)
            }, _p);
            JToken json = d.ToJson();

            Assert.AreEqual(1, json["included"].Count());
        }
Пример #2
0
        public void EmptyToOneShouldSerializeAsNull()
        {
            var r = new ResourceWithRelationship {
                Id = 1
            };
            var ro = new ResourceObject(r, _p);

            ro.ExtractAndRewireResourceLinks();

            var link = ro.Link("ToOne");
            var json = link.ToJson();

            Assert.AreEqual(JTokenType.Null, json["linkage"].Type);
        }
        public void CompoundDocumentShouldHaveIncludedSection()
        {
            var r = new ResourceWithRelationship
            {
                Id    = 1,
                ToOne = new Resource
                {
                    Id = 2
                }
            };
            var    d    = new ResourceDocument(new ResourceObject(r, _p), _p);
            JToken json = d.ToJson();

            Assert.IsNotNull(json["included"]);
        }
        public void CompoundDocumentMustHaveArrayOfResourcesAsIncludedSection()
        {
            var r = new ResourceWithRelationship
            {
                Id    = 1,
                ToOne = new Resource
                {
                    Id = 2
                }
            };
            var    d    = new ResourceDocument(new ResourceObject(r, _p), _p);
            JToken json = d.ToJson();

            Assert.AreEqual(JTokenType.Array, json["included"].Type);
            Assert.IsTrue(IsResource(json["included"][0]));
        }
Пример #5
0
        public void PopulatedToOneShouldSerializeAsObject()
        {
            var r = new ResourceWithRelationship
            {
                Id    = 1,
                ToOne = new Resource {
                    Id = 2
                }
            };
            var ro = new ResourceObject(r, _p);

            ro.ExtractAndRewireResourceLinks();

            var link = ro.Link("ToOne");
            var json = link.ToJson();

            Assert.AreEqual(JTokenType.Object, json["linkage"].Type);
        }
Пример #6
0
        public void LinkedObjectShouldHandleSingleLinkage()
        {
            var r = new ResourceWithRelationship
            {
                Id    = 1,
                ToOne = new Resource {
                    Id = 2
                }
            };
            var ro = new ResourceObject(r, _p);

            ro.ExtractAndRewireResourceLinks();
            var link = ro.Link("ToOne");

            Assert.AreEqual("2", link.Resources.First().ResourceIdentifier.Id);
            Assert.AreEqual("Resources", link.Resources.First().ResourceIdentifier.Type);
            Assert.AreEqual(LinkType.ToOne, link.LinkType);
        }
Пример #7
0
        public void LinkedObjectsShouldHaveLinks()
        {
            var r = new ResourceWithRelationship
            {
                Id    = 1,
                ToOne = new Resource {
                    Id = 2
                }
            };
            var ro    = new ResourceObject(r, _p);
            var links = ro.ExtractAndRewireResourceLinks();

            Assert.IsNotEmpty(links);
            Assert.IsNotEmpty(ro.Links);

            JToken json = ro.ToJson();

            Assert.NotNull(json["links"]);
        }
Пример #8
0
        public void LinkedObjectShouldHandleMultipleLinkage()
        {
            var r = new ResourceWithRelationship
            {
                Id     = 1,
                ToMany = new List <Resource>
                {
                    new Resource {
                        Id = 2
                    }
                }
            };
            var ro = new ResourceObject(r, _p);

            ro.ExtractAndRewireResourceLinks();
            var link = ro.Links.First(l => l.LinkType == LinkType.ToMany);

            Assert.AreEqual("2", link.Resources.First().ResourceIdentifier.Id);
            Assert.AreEqual("Resources", link.Resources.First().ResourceIdentifier.Type);
            Assert.AreEqual(LinkType.ToMany, link.LinkType);
        }
Пример #9
0
        public void PopulatedToManyShouldSerializeAsArray()
        {
            var r = new ResourceWithRelationship
            {
                Id     = 1,
                ToMany = new List <Resource>
                {
                    new Resource {
                        Id = 2
                    }
                }
            };
            var ro = new ResourceObject(r, _p);

            ro.ExtractAndRewireResourceLinks();

            var link = ro.Link("ToMany");
            var json = link.ToJson();

            Assert.AreEqual(JTokenType.Array, json["linkage"].Type);
            Assert.IsNotEmpty(json["linkage"]);
        }