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); }
public static bool TryMatch(this UriTemplate uriTemplate, Uri uri, out IDictionary <string, object> parameters) { parameters = uriTemplate.GetParameters(uri); return(parameters != null); }