private static void AssertEmbeddedEntity(JObject embeddedEntityObject, EmbeddedSubEntity embeddedSubHo) { var embeddedEntityProperties = (JObject)embeddedEntityObject["properties"]; Assert.AreEqual(embeddedEntityProperties.Count, 2); Assert.AreEqual(embeddedEntityObject["properties"]["ABool"].ToString(), embeddedSubHo.ABool.ToString()); Assert.AreEqual(embeddedEntityObject["properties"]["AInt"].ToString(), embeddedSubHo.AInt.ToString()); }
public void RepresentationEntitiesTest() { var routeName = typeof(EmptyHypermediaObject).Name + "_Route"; RouteRegister.AddHypermediaObjectRoute(typeof(EmptyHypermediaObject), routeName); var routeNameEmbedded = typeof(EmbeddedSubEntity).Name + "_Route"; RouteRegister.AddHypermediaObjectRoute(typeof(EmbeddedSubEntity), routeNameEmbedded); var ho = new EmptyHypermediaObject(); var relation1 = "Embedded"; var embeddedHo1 = new EmbeddedSubEntity(); ho.Entities.Add(relation1, new HypermediaObjectReference(embeddedHo1)); var relationsList2 = new List <string> { "RelationA", "RelationB" }; var embeddedHo2 = new EmbeddedSubEntity { ABool = true, AInt = 3 }; ho.Entities.Add(new RelatedEntity(relationsList2, new HypermediaObjectReference(embeddedHo2))); var siren = SirenConverter.ConvertToJson(ho); AssertDefaultClassName(siren, typeof(EmptyHypermediaObject)); AssertEmptyProperties(siren); AssertEmptyActions(siren); AssertHasOnlySelfLink(siren, routeName); Assert.IsTrue(siren["entities"].Type == JTokenType.Array); var entitiesArray = (JArray)siren["entities"]; Assert.AreEqual(entitiesArray.Count, ho.Entities.Count); var embeddedEntityObject = (JObject)siren["entities"][0]; AssertDefaultClassName(embeddedEntityObject, typeof(EmbeddedSubEntity)); AssertRelations(embeddedEntityObject, new List <string> { relation1 }); AssertHasOnlySelfLink(embeddedEntityObject, routeNameEmbedded); AssertEmbeddedEntity(embeddedEntityObject, embeddedHo1); embeddedEntityObject = (JObject)siren["entities"][1]; AssertDefaultClassName(embeddedEntityObject, typeof(EmbeddedSubEntity)); AssertRelations(embeddedEntityObject, relationsList2); AssertHasOnlySelfLink(embeddedEntityObject, routeNameEmbedded); AssertEmbeddedEntity(embeddedEntityObject, embeddedHo2); }