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 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); }
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); }
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); }
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"]); }