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"]); }
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)); }
public WebRequestRoute(Regex routeRegex, IWebRouteProcessor webRouteProcessor) { this.webRouteProcessor = webRouteProcessor; this.routeRegex = routeRegex; }