示例#1
0
        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();
            }
        }
示例#2
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"]);
        }