public void ShouldInjectTransitionsInAListOfResourcesEvenWhenNumberOfRelationsIsLessThanNumberOfResources() { var json = "[" + "{" + "\"Name\":\"John Doe\"," + "\"Amount\":123.45" + "}," + "{" + "\"Name\":\"Sally Doe\"," + "\"Amount\":67.89" + "}" + "]"; var relationsForJohnDoe = new Mock <Relations>(new Mock <IUrlGenerator>().Object); var relationsForSallyDoe = new Mock <Relations>(new Mock <IUrlGenerator>().Object); relationsForJohnDoe.Setup(r => r.GetAll()).Returns(new List <Relation> { new Relation("pay", "http://some/url/pay/john-doe"), new Relation("refresh", "http://some/url/refresh/john-doe") }); var result = new JsonHypermediaInjector().Inject(json, new List <Relations> { relationsForJohnDoe.Object }, requestInfo.Object); Assert.AreEqual( "[" + "{" + "\"Name\":\"John Doe\"," + "\"Amount\":123.45," + "\"links\":" + "[" + "{" + "\"rel\":\"pay\"," + "\"href\":\"http://some/url/pay/john-doe\"" + "}," + "{" + "\"rel\":\"refresh\"," + "\"href\":\"http://some/url/refresh/john-doe\"" + "}" + "]" + "}," + "{" + "\"Name\":\"Sally Doe\"," + "\"Amount\":67.89" + "}" + "]" , result); }
public void ShouldInjectTransitionsInResource() { var json = "{" + "\"Name\":\"John Doe\"," + "\"Amount\":123.45" + "}"; var relations = new Mock <Relations>(new Mock <IUrlGenerator>().Object); relations.Setup(r => r.GetAll()).Returns(new List <Relation> { new Relation("pay", "http://some/url/pay/john-doe"), new Relation("refresh", "http://some/url/refresh/john-doe") }); var result = new JsonHypermediaInjector().Inject(json, relations.Object, requestInfo.Object); Assert.AreEqual( "{" + "\"Name\":\"John Doe\"," + "\"Amount\":123.45," + "\"links\":" + "[" + "{" + "\"rel\":\"pay\"," + "\"href\":\"http://some/url/pay/john-doe\"" + "}," + "{" + "\"rel\":\"refresh\"," + "\"href\":\"http://some/url/refresh/john-doe\"" + "}" + "]" + "}" , result); }