public void Test() { HeadlessMother mother = new HeadlessMother(); IService mockService = MockRepository.GenerateStub <IService>(); ServiceInfo serviceInfo = new ServiceInfo(); serviceInfo.ComputerName = "computer"; serviceInfo.PortNumber = 3434; mockService.Expect(s => s.GetServiceInfo()).Return(serviceInfo).Repeat.Any(); IWebRouteProcessor mainPageProcessor = new MainPageProcessor(mockService, mother.ProjectRegistry); IWebRouteProcessor fileWebRouteProcessor = new FileWebRouteProcessor(); DefaultWebRequestRouter webRequestRouter = new DefaultWebRequestRouter(); webRequestRouter.AddRoute(@".*\.css$", fileWebRouteProcessor); webRequestRouter.AddRoute(@".*", mainPageProcessor); IWebRequestProcessor webRequestProcessor = new DefaultWebRequestProcessor(webRequestRouter); //string response = webRequestProcessor.ProcessRequest(new Uri("http://localhost:23232/")); using (WebServer webServer = new WebServer(serviceInfo, webRequestProcessor)) { webServer.Start(); Thread.Sleep(TimeSpan.FromSeconds(20)); webServer.Stop(); } }
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"]); }