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 void Process(RoutedWebRequest route, WebResponseData response) { ResponseTemplate template = GetResponseTemplate(route); template.Expand(response); }
protected abstract ResponseTemplate GetResponseTemplate(RoutedWebRequest route);