public void GetParametersWithOperators() { var uri = new Uri("http://example.com/foo/bar"); var template = new UriTemplate("http://example.com/{+p1}/{p2*}"); var parameters = template.GetParameters(uri); Assert.Equal(2, parameters.Count); Assert.Equal("foo", parameters["p1"]); Assert.Equal("bar", parameters["p2"]); }
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"]); }
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 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("yuck", parameters["bar"]); Assert.Equal("yob", parameters["baz"]); }
public void OptionalPathParam() { var uri = new Uri("/foo/yuck/bob", UriKind.RelativeOrAbsolute); var template = new UriTemplate("/foo{/bar}/bob"); var parameters = template.GetParameters(uri); Assert.Equal("yuck", parameters["bar"]); }
public void FragmentParams() { var uri = new Uri("/foo#Hello%20World!,blurg", UriKind.RelativeOrAbsolute); var template = new UriTemplate("/foo{#p1,p2}"); var parameters = template.GetParameters(uri); Assert.Equal("Hello World!", parameters["p1"]); Assert.Equal("blurg", parameters["p2"]); }
public void Level1Decode() { var uri = new Uri("/Hello%20World", UriKind.RelativeOrAbsolute); var template = new UriTemplate("/{p1}"); var parameters = template.GetParameters(uri); Assert.Equal("Hello World", parameters["p1"]); }
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 (int i = 0; i < 100000; i++) { var parameters = template.GetParameters(uri); } }
public void TestExactParameterCount() { var uri = new Uri("http://example.com/foo?bar=10"); var template = new UriTemplate("http://example.com/foo{?bar}"); var parameters = template.GetParameters(uri); Assert.Equal(1, parameters.Count); }
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 GetParameterFromArrayParameter() { var uri = new Uri("http://example.com?blur=45,23"); var template = new UriTemplate("http://example.com{?blur}"); var parameters = template.GetParameters(uri); Assert.Equal(1, parameters.Count); Assert.Equal("45,23", parameters["blur"]); }