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]); }
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); }
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); }
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); }
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); }
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); }
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); }
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]); }