コード例 #1
0
        private string InjectJsonTransitions(string content, Relations relations)
        {
            var jsonTransitions             = relations.GetAll().Select(GetTransitionOnJsonFormat);
            var jsonTransitionsConcatenated = string.Join(",", jsonTransitions.ToArray());

            var jsonWithTransitions = content.Insert(content.Length - 1, ",\"links\":[" + jsonTransitionsConcatenated + "]");

            return(jsonWithTransitions);
        }
コード例 #2
0
 private void ReplaceEntryUrl(XmlNode node, Relations relations)
 {
     var self = relations.GetAll().SingleOrDefault(r => r.Name.ToLower().Equals("self"));
     if (self != null)
     {
         var id = FindNode(node, "id");
         id.InnerText = self.Url;
     }
 }
コード例 #3
0
        private void ReplaceEntryUrl(XmlNode node, Relations relations)
        {
            var self = relations.GetAll().SingleOrDefault(r => r.Name.ToLower().Equals("self"));

            if (self != null)
            {
                var id = FindNode(node, "id");
                id.InnerText = self.Url;
            }
        }
コード例 #4
0
        public void ShouldCreateALinkToaNonAction()
        {
            var relations = new Relations(new Mock<IUrlGenerator>().Object);

            relations.Named("to_another_website").At("some/url");

            var all = relations.GetAll();

            Assert.AreEqual(1, all.Count);
            Assert.AreEqual("to_another_website" , all.First().Name);
            Assert.AreEqual("some/url", all.First().Url);
        }
コード例 #5
0
        public void ShouldWorkWhenUsingTheAPIFluentlyInARow()
        {
            var relations = new Relations(new Mock<IUrlGenerator>().Object);
            relations.Named("pay").Uses<SomeController>().SomeSimpleAction();
            relations.Named("cancel").Uses<SomeController>().SomeSimpleAction();

            var all = relations.GetAll();

            Assert.AreEqual(2, all.Count);
            Assert.IsNotNull(all.Where(t => t.Name == "pay").Single());
            Assert.IsNotNull(all.Where(t => t.Name == "cancel").Single());
        }
コード例 #6
0
        public void ShouldCreateALinkToaNonAction()
        {
            var relations = new Relations(new Mock <IUrlGenerator>().Object);

            relations.Named("to_another_website").At("some/url");

            var all = relations.GetAll();

            Assert.AreEqual(1, all.Count);
            Assert.AreEqual("to_another_website", all.First().Name);
            Assert.AreEqual("some/url", all.First().Url);
        }
コード例 #7
0
        public void ShouldTransitToAControllerAction()
        {
            var urlGenerator = new Mock<IUrlGenerator>();
            urlGenerator.Setup(ug => ug.For("Some", "SomeSimpleAction", It.IsAny<IDictionary<string, object>>())).Returns("http://Some/SomeSimpleAction");

            var relations = new Relations(urlGenerator.Object);
            relations.Named("pay").Uses<SomeController>().SomeSimpleAction();

            var all = relations.GetAll();

            Assert.AreEqual("pay", all.First().Name);
            Assert.AreEqual("http://Some/SomeSimpleAction", all.First().Url);
        }
コード例 #8
0
        public void ShouldWorkWhenUsingTheAPIFluentlyInARow()
        {
            var relations = new Relations(new Mock <IUrlGenerator>().Object);

            relations.Named("pay").Uses <SomeController>().SomeSimpleAction();
            relations.Named("cancel").Uses <SomeController>().SomeSimpleAction();

            var all = relations.GetAll();

            Assert.AreEqual(2, all.Count);
            Assert.IsNotNull(all.Where(t => t.Name == "pay").Single());
            Assert.IsNotNull(all.Where(t => t.Name == "cancel").Single());
        }
コード例 #9
0
        public string Inject(string content, Relations relations, IRequestInfoFinder requestInfo)
        {
            var xmlDocument = new XmlDocument();
            xmlDocument.LoadXml(content);

            foreach (var state in relations.GetAll())
            {
                var transition = GetTransition(xmlDocument, state);

                xmlDocument.DocumentElement.AppendChild(transition);
            }

            return xmlDocument.InnerXml;
        }
コード例 #10
0
        public void ShouldTransitToAControllerAction()
        {
            var urlGenerator = new Mock <IUrlGenerator>();

            urlGenerator.Setup(ug => ug.For("Some", "SomeSimpleAction", It.IsAny <IDictionary <string, object> >())).Returns("http://Some/SomeSimpleAction");

            var relations = new Relations(urlGenerator.Object);

            relations.Named("pay").Uses <SomeController>().SomeSimpleAction();

            var all = relations.GetAll();

            Assert.AreEqual("pay", all.First().Name);
            Assert.AreEqual("http://Some/SomeSimpleAction", all.First().Url);
        }
コード例 #11
0
        public string Inject(string content, Relations relations, IRequestInfoFinder requestInfo)
        {
            var xmlDocument = new XmlDocument();

            xmlDocument.LoadXml(content);

            foreach (var state in relations.GetAll())
            {
                var transition = GetTransition(xmlDocument, state);

                xmlDocument.DocumentElement.AppendChild(transition);
            }

            return(xmlDocument.InnerXml);
        }
コード例 #12
0
        private string InjectJsonTransitions(string content, Relations relations)
        {
            var jsonTransitions = relations.GetAll().Select(GetTransitionOnJsonFormat);
            var jsonTransitionsConcatenated = string.Join(",", jsonTransitions.ToArray());

            var jsonWithTransitions = content.Insert(content.Length - 1, ",\"links\":[" + jsonTransitionsConcatenated + "]");

            return jsonWithTransitions;
        }