コード例 #1
0
        public void RouteRequests()
        {
            IWebRouteProcessor webRouteProcessor1 = MockRepository.GenerateMock <IWebRouteProcessor>();
            IWebRouteProcessor webRouteProcessor2 = MockRepository.GenerateMock <IWebRouteProcessor>();

            DefaultWebRequestRouter router = new DefaultWebRequestRouter();

            router.AddRoute(
                new WebRequestRoute(
                    new Regex(
                        @"Project/(?<projectid>\w+)$",
                        RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase),
                    webRouteProcessor1));
            router.AddRoute(
                new WebRequestRoute(
                    new Regex(
                        @"Project/(?<projectid>\w+)/Build/(?<buildid>\w+)$",
                        RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase),
                    webRouteProcessor2));

            WebRequestData requestData = new WebRequestData();

            requestData.RequestUrl = new Uri(@"http://*****:*****@"http://localhost:9233/headless/Project/Headless/Build/blabla");
            routedWebRequest       = router.RouteRequest(requestData);

            Assert.IsNotNull(routedWebRequest);
            Assert.AreSame(webRouteProcessor2, routedWebRequest.WebRouteProcessor);
            Assert.AreEqual("Headless", routedWebRequest.RouteParameters["projectid"]);
            Assert.AreEqual("blabla", routedWebRequest.RouteParameters["buildid"]);
        }
コード例 #2
0
        public void Process(RoutedWebRequest route, WebResponseData response)
        {
            ResponseTemplate template = GetResponseTemplate(route);

            template.Expand(response);
        }
コード例 #3
0
 protected abstract ResponseTemplate GetResponseTemplate(RoutedWebRequest route);