コード例 #1
0
ファイル: RegexWebRequestRoute.cs プロジェクト: breki/syborg
 public RegexWebRequestRoute(string routeRegex, string httpMethod, IWebCommand command)
 {
     Contract.Requires(routeRegex != null);
     Contract.Requires(command != null);
     this.routeRegex = new Regex(routeRegex, RegexOptions.Compiled | RegexOptions.IgnoreCase);
     this.httpMethod = httpMethod;
     this.command    = command;
 }
コード例 #2
0
ファイル: RouteMatchingTests.cs プロジェクト: breki/syborg
        public void RoutesMustBeUrlDecoded()
        {
            IWebCommand command = MockRepository.GenerateMock <IWebCommand>();

            command.Expect(x => x.Execute(null, null)).IgnoreArguments()
            .Do(new Func <IWebContext, WebRequestRouteMatch, IWebCommandResult>(
                    (c, r) =>
            {
                Assert.AreEqual("côte-d'ivoire", r["PlaceId"]);
                return(new HttpStatusResult(HttpStatusCode.Accepted));
            }));

            SetupRoutingTest("^place/(?<PlaceId>.+)$", "/place/côte-d'ivoire", "GET", true, command);
        }
コード例 #3
0
ファイル: RouteMatchingTests.cs プロジェクト: breki/syborg
        private void SetupRoutingTest(string routePattern, string rawUrl, string method, bool expectMatch, IWebCommand overrideCommand = null)
        {
            route = new RegexWebRequestRoute(routePattern, "GET", overrideCommand ?? webCommand);

            Uri url = new Uri("http://azuritemaps.com" + rawUrl);

            webContext.Stub(x => x.Url).Return(url);
            webContext.Stub(x => x.RawUrl).Return(rawUrl);
            webContext.Stub(x => x.HttpMethod).Return(method);

            if (expectMatch && overrideCommand == null)
            {
                webCommand.Stub(x => x.Execute(null, null))
                .IgnoreArguments()
                .Return(new HttpStatusResult(HttpStatusCode.Accepted));
            }

            IWebCommandResult expectedCommandResult;

            Assert.AreEqual(expectMatch, route.ProcessIfMatch(webContext, out expectedCommandResult));

            if (expectMatch)
            {
                Assert.IsInstanceOf <HttpStatusResult>(expectedCommandResult);
                Assert.AreEqual((int)HttpStatusCode.Accepted, ((HttpStatusResult)expectedCommandResult).StatusCode);
            }
        }
コード例 #4
0
 public static void AddCommand(IWebCommand command)
 {
 }