示例#1
0
        public void LinksExternalReferenceTest()
        {
            var externalUri      = "http://www.example.com/";
            var routeNameLinking = typeof(ExternalUsingHypermediaObject).Name + "_Route";

            RouteRegister.AddHypermediaObjectRoute(typeof(ExternalUsingHypermediaObject), routeNameLinking);

            var          ho  = new ExternalUsingHypermediaObject();
            const string rel = "External";

            ho.Links.Add(rel, new ExternalReference(new Uri(externalUri)));

            var siren = SirenConverter.ConvertToJson(ho);

            AssertDefaultClassName(siren, typeof(ExternalUsingHypermediaObject));
            AssertEmptyProperties(siren);
            AssertEmptyEntities(siren);
            AssertEmptyActions(siren);

            Assert.IsTrue(siren["links"].Type == JTokenType.Array);
            var linksArray = (JArray)siren["links"];

            Assert.AreEqual(linksArray.Count, ho.Links.Count);

            var linkObject = linksArray[0] as JObject;

            if (linkObject == null)
            {
                throw new Exception("Link array item should be a JObject");
            }

            var relationArray       = (JArray)linkObject["rel"];
            var sirenRelations      = relationArray.Values <string>().ToList();
            var stringListComparer  = new StringCollectionComparer();
            var hasDesiredRelations = stringListComparer.Equals(sirenRelations, new List <string> {
                rel
            });

            Assert.IsTrue(hasDesiredRelations);
            Assert.AreEqual(((JValue)linkObject["href"]).Value <string>(), externalUri);
        }
 public void TestInit()
 {
     stringListComparer = new StringCollectionComparer();
 }