Exemplo n.º 1
0
        public void AddingMultipleCuries_WhenValid_AddsThemAllToTheCollection()
        {
            var model = new SimpleModel();
            var graph = new HalGraph(model);

            var firstCurie  = new Curie("a", "/api/some-resource1/{template}");
            var secondCurie = new Curie("b", "/api/some-resource2/{template}");
            var thirdCurie  = new Curie("c", "/api/some-resource3/{template}");
            var fourthCurie = new Curie("d", "/api/some-resource4/{template}");

            graph.AddCuries(new List <Curie> {
                firstCurie, secondCurie, thirdCurie, fourthCurie
            });

            var curiesCollection = (List <CurieLink>)((Dictionary <string, object>)graph["_links"])["curies"];

            var expectedCurieLink1 = new CurieLink("a", "/api/some-resource1/{template}");
            var expectedCurieLink2 = new CurieLink("b", "/api/some-resource2/{template}");
            var expectedCurieLink3 = new CurieLink("c", "/api/some-resource3/{template}");
            var expectedCurieLink4 = new CurieLink("d", "/api/some-resource4/{template}");

            Assert.True(((Dictionary <string, object>)graph["_links"]).Count == 1);
            Assert.True(curiesCollection.Count == 4);
            expectedCurieLink1.ShouldDeepEqual(curiesCollection[0]);
            expectedCurieLink2.ShouldDeepEqual(curiesCollection[1]);
            expectedCurieLink3.ShouldDeepEqual(curiesCollection[2]);
            expectedCurieLink4.ShouldDeepEqual(curiesCollection[3]);
        }
Exemplo n.º 2
0
        public void Constructing_WithValidAbsoluteUrl_SetsName()
        {
            var name = "my-name";
            var url  = "http://www.myapi.com/api/orders/{order-id}";

            var link = new CurieLink(name, url);

            Assert.Equal(expected: name, actual: link.Name);
        }
Exemplo n.º 3
0
        public void Constructing_WithValidRelativeUrlAndName_SetsName()
        {
            var name = "my-name";
            var url  = "/api/orders/{order-id}";

            var link = new CurieLink(name, url);

            Assert.Equal(expected: name, actual: link.Name);
        }
Exemplo n.º 4
0
        public void Constructing_WithUrlContainingTemplatePlaceholder_SetsName()
        {
            var name = "my-name";
            var url  = "http://www.myapi.com/api/orders/{order-id}";

            var link = new CurieLink(name, url);

            Assert.Equal(expected: name, actual: link.Name);
        }
Exemplo n.º 5
0
        public void Constructing_WithValidAbsoluteUrl_SetsHref()
        {
            var name = "my-name";
            var url  = "http://www.myapi.com/api/orders/{order-id}";

            var expectedUri = new Uri(url, UriKind.Absolute);

            var link = new CurieLink(name, url);

            Assert.Equal(expected: expectedUri, actual: link.Href);
        }
Exemplo n.º 6
0
        public void Constructing_WithValidRelativeUrlAndName_SetsHref()
        {
            var name = "my-name";
            var url  = "/api/orders/{order-id}";

            var expectedUri = new Uri(url, UriKind.Relative);

            var link = new CurieLink(name, url);

            Assert.Equal(expected: expectedUri, actual: link.Href);
        }
Exemplo n.º 7
0
        public void Constructing_ValidUrlButHasTrailingSlash_TrailingSlashIsRemoved()
        {
            var name = "my-name";
            var url  = "http://www.myapi.com/api/orders/{order-id}/";

            var expectedUrl = new Uri("http://www.myapi.com/api/orders/{order-id}", UriKind.Absolute);

            var link = new CurieLink(name, url);

            Assert.Equal(expected: expectedUrl, actual: link.Href);
        }
Exemplo n.º 8
0
        public void AddingCurie_WhenValid_CreateLinkWithNameCurie()
        {
            var model = new SimpleModel();
            var graph = new HalGraph(model);

            var curieToCreate = new Curie("xx", "http://www.myapi.com/api/{something}");

            var expectedLink = new CurieLink("xx", "http://www.myapi.com/api/{something}");

            graph.AddCurie(curieToCreate);

            var curiesCollection = (List <CurieLink>)((Dictionary <string, object>)graph["_links"])["curies"];

            Assert.True(((Dictionary <string, object>)graph["_links"]).Count == 1);
            Assert.True(curiesCollection.Count == 1);
            expectedLink.ShouldDeepEqual(curiesCollection[0]);
        }