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); }
public void LinkEntitiesTest() { var routeName = typeof(EmptyHypermediaObject).Name + "_Route"; RouteRegister.AddHypermediaObjectRoute(typeof(EmptyHypermediaObject), routeName); var routeNameEmbedded = typeof(EmbeddedSubEntity).Name + "_Route"; RouteRegister.AddHypermediaObjectRoute(typeof(EmbeddedSubEntity), routeNameEmbedded); RouteRegister.AddRouteKeyProducer(typeof(EmbeddedSubEntity), new EmbeddedEntityRouteKeyProducer()); var ho = new EmptyHypermediaObject(); var relation1 = "Embedded"; ho.Entities.Add(relation1, new HypermediaObjectKeyReference(typeof(EmbeddedSubEntity), 6)); var relationsList2 = new List <string> { "RelationA", "RelationB" }; var query = new EmbeddedQueryObject { AInt = 2 }; ho.Entities.Add(new RelatedEntity(relationsList2, new HypermediaObjectQueryReference(typeof(EmbeddedSubEntity), query, 3))); 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]; AssertRelations(embeddedEntityObject, new List <string> { relation1 }); AssertRoute(((JValue)embeddedEntityObject["href"]).Value <string>(), routeNameEmbedded, "{ key = 6 }"); embeddedEntityObject = (JObject)siren["entities"][1]; AssertRelations(embeddedEntityObject, relationsList2); AssertRoute(((JValue)embeddedEntityObject["href"]).Value <string>(), routeNameEmbedded, "{ key = 3 }", QueryStringBuilder.CreateQueryString(query)); }
public void EmptyObjectTest() { var routeName = typeof(EmptyHypermediaObject).Name + "_Route"; RouteRegister.AddHypermediaObjectRoute(typeof(EmptyHypermediaObject), routeName); var ho = new EmptyHypermediaObject(); var siren = SirenConverter.ConvertToJson(ho); AssertDefaultClassName(siren, typeof(EmptyHypermediaObject)); AssertEmptyProperties(siren); AssertEmptyEntities(siren); AssertEmptyActions(siren); AssertHasOnlySelfLink(siren, routeName); }