Beispiel #1
0
        public void OptionalPathParamWithMultipleValues()
        {
            var uri = new Uri("/foo/yuck/yob/bob", UriKind.RelativeOrAbsolute);

            var template = new UriTemplate("/foo{/bar,baz}/bob");

            var parameters = template.GetParameters(uri);

            Assert.Equal(2, parameters.Count); // This current fails
            Assert.Equal("yuck", parameters["bar"]);
            Assert.Equal("yob", parameters["baz"]);
        }
        public void GetParametersFromMultipleQueryString()
        {
            var uri = new Uri("http://example.com/foo/bar?blur=45");

            var template = new UriTemplate("http://example.com/{+p1}/{p2*}{?blur,blob}");

            var parameters = template.GetParameters(uri);

            Assert.Equal(3, parameters.Count);
            Assert.Equal("foo", parameters["p1"]);
            Assert.Equal("bar", parameters["p2"]);
            Assert.Equal("45", parameters["blur"]);
        }
        public void TestGlimpseUrl()
        {
            var uri = new Uri("http://example.com/Glimpse.axd?n=glimpse_ajax&parentRequestId=123232323&hash=23ADE34FAE&callback=http%3A%2F%2Fexample.com%2Fcallback");

            var template = new UriTemplate("http://example.com/Glimpse.axd?n=glimpse_ajax&parentRequestId={parentRequestId}{&hash,callback}");

            var parameters = template.GetParameters(uri);

            Assert.Equal(3, parameters.Count);
            Assert.Equal("123232323", parameters["parentRequestId"]);
            Assert.Equal("23ADE34FAE", parameters["hash"]);
            Assert.Equal("http://example.com/callback", parameters["callback"]);
        }
        public void GetParametersFromMultipleQueryStringWithOptionalAndMandatoryParameters()
        {
            var uri = new Uri("http://example.com/foo/bar?blur=45&blob=23");

            var template = new UriTemplate("http://example.com/{+p1}/{p2*}{?blur}{&blob}");

            var parameters = template.GetParameters(uri);

            Assert.Equal(4, parameters.Count);
            Assert.Equal("foo", parameters["p1"]);
            Assert.Equal("bar", parameters["p2"]);
            Assert.Equal("45", parameters["blur"]);
            Assert.Equal("23", parameters["blob"]);
        }
        public void SimplePerfTest()
        {
            var uri = new Uri(
                "http://example.com/Glimpse.axd?n=glimpse_ajax&parentRequestId=123232323&hash=23ADE34FAE&callback=http%3A%2F%2Fexample.com%2Fcallback");

            var template =
                new UriTemplate(
                    "http://example.com/Glimpse.axd?n=glimpse_ajax&parentRequestId={parentRequestId}{&hash,callback}");

            for (var i = 0; i < 100000; i++)
            {
                var parameters = template.GetParameters(uri);
            }
        }
        private bool MatchUriTemplate(UriTemplate uriTemplate, string url, out IDictionary <string, string> parameters)
        {
            if (uriTemplate == null || string.IsNullOrEmpty(url))
            {
                parameters = new Dictionary <string, string>();
            }
            else
            {
                var parsed = uriTemplate.GetParameters(new Uri(url));
                parameters = parsed.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ToString());
            }

            return(true);
        }
Beispiel #7
0
        public static bool TryMatch(this UriTemplate uriTemplate, Uri uri, out IDictionary <string, object> parameters)
        {
            parameters = uriTemplate.GetParameters(uri);

            return(parameters != null);
        }