Esempio n. 1
0
        public void RegisterAndRetrieveLink()
        {
            // Arrange
            var registry = new SemanticsRegistry();
            registry.RegisterLinkType<Link>("foo");

            //Act
            var link = registry.CreateLink("foo");

            //Assert
            Assert.IsNotNull(link);
        }
Esempio n. 2
0
        public void RegisterAndRetrieveDerivedLink()
        {
            // Arrange
            var registry = new SemanticsRegistry();
            registry.RegisterLinkType<FooLink>("foo");

            //Act
            var link = registry.CreateLink("foo");

            //Assert
            Assert.IsNotNull(link);
            Assert.IsInstanceOfType(link,typeof(FooLink));
        }
        public static void RegisterSemantics(SemanticsRegistry registry)
        {

			registry.RegisterLinkType<NorthLink>("north");
            registry.RegisterLinkType<SouthLink>("south");
            registry.RegisterLinkType<EastLink>("east");
            registry.RegisterLinkType<WestLink>("west");
            registry.RegisterLinkType<StartLink>("start");
            registry.RegisterLinkType<CurrentLink>("current");
            registry.RegisterLinkType<ExitLink>("exit");

            registry.RegisterFormatter(new XmlFormatter("application/vnd.amundsen.maze+xml"));
            registry.RegisterLinkExtractor(new MazeLinkExtractor());
        }
Esempio n. 4
0
        private void ExtractHeaderLinks(HttpResponseHeaders responseHeaders, SemanticsRegistry linkFactory)
        {
            _HeaderLinks = new List<Link>();

            foreach (var header in responseHeaders.Where(h => h.Key.ToLowerInvariant() == "link"))
            {
                var links = header.Value.First();

                foreach (Match match in LinkHeaderParser.Matches(links))
                {
                    string relation = null;
                    if (match.Groups["rel"].Success)
                    {
                        relation = match.Groups["rel"].Value;
                    }

                    var link = linkFactory.CreateLink(relation);
                    link.Target = new Uri(match.Groups["href"].Value, UriKind.RelativeOrAbsolute);

                    _HeaderLinks.Add(link);
                }
            }
        }
        public static void RegisterSemantics(SemanticsRegistry semantics) {
            semantics.RegisterLinkType<First>("first");
            semantics.RegisterLinkType<Index>("index");
            semantics.RegisterLinkType<Last>("last");
            semantics.RegisterLinkType<Message>("message");
            semantics.RegisterLinkType<MessagePost>("message-post");
            semantics.RegisterLinkType<MessageReply>("message-reply");
            semantics.RegisterLinkType<MessageShare>("message-share");
            semantics.RegisterLinkType<MessageAll>("message-all");
            semantics.RegisterLinkType<MessageFriends>("message-friends");
            semantics.RegisterLinkType<MessageMe>("message-me");
            semantics.RegisterLinkType<MessagesMentions>("messages-mentions");
            semantics.RegisterLinkType<MessagesShares>("messages-shares");
            semantics.RegisterLinkType<MessagesSearch>("messages-search");
            semantics.RegisterLinkType<Next>("next");
            semantics.RegisterLinkType<Previous>("previous");
            semantics.RegisterLinkType<Self>("self");
            semantics.RegisterLinkType<User>("user");
            semantics.RegisterLinkType<UserAdd>("user-add");
            semantics.RegisterLinkType<UserFollow>("user-follow");
            semantics.RegisterLinkType<UserMe>("user-me");
            semantics.RegisterLinkType<UserUpdate>("user-update");
            semantics.RegisterLinkType<UsersAll>("users-all");
            semantics.RegisterLinkType<UsersFriends>("users-friends");
            semantics.RegisterLinkType<UsersFollowers>("users-followers");
            semantics.RegisterLinkType<UsersSearch>("users-search");
            semantics.RegisterLinkType<Website>("website");

            semantics.RegisterLinkType<UserAddForm>("user-add-form");
            semantics.RegisterLinkType<MessagePostForm>("message-post-form");
            semantics.RegisterLinkType<MessagesSearchForm>("messages-search-form");
            semantics.RegisterLinkType<MessageShareForm>("message-share-form");
            
            semantics.RegisterFormatter(new MicroblogFormatter());
            semantics.RegisterLinkExtractor(new MicroblogLinkExtractor());
        }
Esempio n. 6
0
 private RestAgent(HttpClient httpClient, SemanticsRegistry semanticsRegistry) {
     _HttpClient = httpClient;
     _SemanticsRegistry = semanticsRegistry;
     CreateDefaultResponseActions();
 }