public void JsonApiResourceObject_AutoAddAttributesAndRelations() { var data = new ModelWithReferences { Id = Guid.NewGuid().ToString(), SingleReference = new ModelWithNoReferences { Id = Guid.NewGuid().ToString() } }; var resourceObject = JsonApiResourceBuilder.Build(data, true); var json = JsonConvert.SerializeObject(resourceObject, Formatting.Indented); var deserialized = JsonConvert.DeserializeObject <JsonApiResourceObject>(json); var result = deserialized.ToObject <ModelWithReferences>(); Assert.IsTrue(result.Id == data.Id); Assert.IsTrue(result.SingleReference.Id == data.SingleReference.Id); }
public void JsonApiResourceObject_ManuallyAddRelations() { var data = new ModelWithReferences { Id = Guid.NewGuid().ToString(), SingleReference = new ModelWithNoReferences { Id = Guid.NewGuid().ToString() }, CollectionReference = new List <ModelWithNoReferences> { new ModelWithNoReferences { Id = Guid.NewGuid().ToString() }, new ModelWithNoReferences { Id = Guid.NewGuid().ToString() } } }; var resourceObject = new JsonApiResourceObject(); resourceObject.FromObject(data, false); resourceObject.Relationships = new Dictionary <string, JsonApiRelationshipObjectBase>(); resourceObject.Relationships.Add("single-reference", new JsonApiToOneRelationshipObject { Data = new JsonApiResourceIdentifierObject(data.SingleReference.Id, data.SingleReference.GetType().GetJsonApiClassName()) }); resourceObject.Relationships.Add("collection-reference", new JsonApiToManyRelationshipObject { Data = data.CollectionReference.Select(i => new JsonApiResourceIdentifierObject(i.Id, i.GetType().GetJsonApiClassName())).ToList() }); //resourceObject.Attributes = (data, false, x => x.SingleReference); var json = JsonConvert.SerializeObject(resourceObject, Formatting.Indented); var deserialized = JsonConvert.DeserializeObject <JsonApiResourceObject>(json); var result = deserialized.ToObject <ModelWithReferences>(); Assert.IsTrue(result.SingleReference.Id == data.SingleReference.Id); Assert.IsTrue(result.CollectionReference.Count() == data.CollectionReference.Count()); }