Пример #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 RoutedWebRequest(WebRequestData request, IWebRouteProcessor webRouteProcessor)
 {
     this.request           = request;
     this.webRouteProcessor = webRouteProcessor;
 }
 public void AddRoute(string routeRegex, IWebRouteProcessor webRouteProcessor)
 {
     routes.Add(new WebRequestRoute(new Regex(routeRegex, RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase), webRouteProcessor));
 }
Пример #4
0
 public WebRequestRoute(Regex routeRegex, IWebRouteProcessor webRouteProcessor)
 {
     this.webRouteProcessor = webRouteProcessor;
     this.routeRegex        = routeRegex;
 }