Exemplo n.º 1
0
 public void PathParserCanWalk()
 {
     var pathParser = new PathRouteData(new Uri("http://localhost/foo"), 0);
     pathParser.MoveToNext();
     Assert.Equal("foo", pathParser.CurrentSegment);
     Assert.True(pathParser.EndOfPath());
 }
Exemplo n.º 2
0
        public void UseRouteDataToResolveUriTemplate()
        {
            var routeData = new PathRouteData(new Uri("http://foo"), 0);

            routeData.Values.Add("foo","1");
            routeData.Values.Add("bar", "2");
            routeData.Values.Add("baz", 3);
            var link = new Link() {Target = new Uri("http://localhost/{?foo,bar,baz}")};
            foreach (var value in routeData.Values)
            {
                link.SetParameter(value.Key,value.Value);
            }
            var request = link.CreateRequest();

            Assert.Equal("http://localhost/?foo=1&bar=2&baz=3", request.RequestUri.AbsoluteUri);
        }
Exemplo n.º 3
0
        internal PathRouteData RetrieveRouteData(HttpRequestMessage request)
        {
            PathRouteData pathRouteData;

            if (request.Properties.ContainsKey(HttpPropertyKeys.HttpRouteDataKey))
            {
                //MVC Host requires a single route to trigger MessageHandlers to kick in
                // replace that RouteData with our PathRouteData.
                var currentRouteData = GetRouteData(request);
                pathRouteData = currentRouteData as PathRouteData;

                if (pathRouteData == null)
                {
                    pathRouteData = CreatePathRouteDate(request);

                    // Do we need to copy over the properties???
                    foreach (var value in currentRouteData.Values)
                    {
                        pathRouteData.Values.Add(value.Key, value.Value);
                    }

                    request.Properties[HttpPropertyKeys.HttpRouteDataKey] = pathRouteData;
                }
            }
            else
            {
                // Self host will not create RouteData itself
                pathRouteData = new PathRouteData(request.RequestUri, _InitalPosition);
                request.Properties.Add(new KeyValuePair <string, object>(HttpPropertyKeys.HttpRouteDataKey, pathRouteData));
            }


            // Copy over values provided during Router setup
            if (_Defaults != null)
            {
                foreach (var value in _Defaults)
                {
                    pathRouteData.Values[value.Key] = value.Value;
                }
            }
            return(pathRouteData);
        }
Exemplo n.º 4
0
 public void PathParserWithEmptyUri()
 {
     var pathParser = new PathRouteData(new Uri("http://localhost"), 0);
     Assert.True(pathParser.EndOfPath());
 }
Exemplo n.º 5
0
 public void PathParserShouldInitializeWithRootAsFirstSegment()
 {
     var pathParser = new PathRouteData(new Uri("http://localhost/Desktop"), 0);
     Assert.Equal("", pathParser.CurrentSegment);
 }