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