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