Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }