Пример #1
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);
        }
Пример #2
0
        public void SimpleObjectsShouldNotHaveLinks()
        {
            var r = new Resource {
                Id = 1
            };
            var ro    = new ResourceObject(r, _p);
            var links = ro.ExtractAndRewireResourceLinks();

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

            JToken json = ro.ToJson();

            Assert.Null(json["links"]);
        }
Пример #3
0
        public void LinkedObjectShouldHandleUriLinkage()
        {
            var r = new ResourceWithUriRelationship
            {
                Id     = 1,
                Author = new Uri("http://www.google.com")
            };
            var ro = new ResourceObject(r, _p);

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

            Assert.AreEqual(LinkType.ToUrl, link.LinkType);
            var json = link.ToJson();

            Assert.AreEqual("http://www.google.com", (string)json);
        }
Пример #4
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);
        }
Пример #5
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);
        }
Пример #6
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"]);
        }
Пример #7
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);
        }
Пример #8
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"]);
        }