public void TestCompoundFragmentExpansionAssociativeMapVariable() { string template = "{#keys*}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); string[] allowed = { "#comma=,,dot=.,semi=;", "#comma=,,semi=;,dot=.", "#dot=.,comma=,,semi=;", "#dot=.,semi=;,comma=,", "#semi=;,comma=,,dot=.", "#semi=;,dot=.,comma=," }; CollectionAssert.Contains(allowed, uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["keys"], (ICollection)match.Bindings["keys"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["keys"], (ICollection)match.Bindings["keys"].Value); }
public void TestPathParameterExpansionAssociativeMapVariable() { string template = "{;keys}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); string[] allowed = { ";keys=comma,%2C,dot,.,semi,%3B", ";keys=comma,%2C,semi,%3B,dot,.", ";keys=dot,.,comma,%2C,semi,%3B", ";keys=dot,.,semi,%3B,comma,%2C", ";keys=semi,%3B,comma,%2C,dot,.", ";keys=semi,%3B,dot,.,comma,%2C" }; CollectionAssert.Contains(allowed, uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["keys"], (ICollection)match.Bindings["keys"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["keys"], (ICollection)match.Bindings["keys"].Value); }
public void TestEscapeSequences1() { string template = "/base{/group_id,first_name}/pages{/page,lang}{?format,q}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("/base/12345/John/pages/5/en?format=json&q=URI%20Templates", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["group_id"], match.Bindings["group_id"].Value); Assert.AreEqual(Variables1["first_name"], match.Bindings["first_name"].Value); Assert.AreEqual(Variables1["page"], match.Bindings["page"].Value); Assert.AreEqual(Variables1["lang"], match.Bindings["lang"].Value); Assert.AreEqual(Variables1["format"], match.Bindings["format"].Value); Assert.AreEqual(Variables1["q"], match.Bindings["q"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["group_id"], match.Bindings["group_id"].Value); Assert.AreEqual(Variables1["first_name"], match.Bindings["first_name"].Value); Assert.AreEqual(Variables1["page"], match.Bindings["page"].Value); Assert.AreEqual(Variables1["lang"], match.Bindings["lang"].Value); Assert.AreEqual(Variables1["format"], match.Bindings["format"].Value); Assert.AreEqual(Variables1["q"], match.Bindings["q"].Value); }
public void TestReservedExpansionAssociativeMapVariable() { string template = "{+keys}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); string[] allowed = { "comma,,,dot,.,semi,;", "comma,,,semi,;,dot,.", "dot,.,comma,,,semi,;", "dot,.,semi,;,comma,,", "semi,;,comma,,,dot,.", "semi,;,dot,.,comma,," }; CollectionAssert.Contains(allowed, uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["keys"], (ICollection)match.Bindings["keys"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["keys"], (ICollection)match.Bindings["keys"].Value); }
public void TestCompoundQueryExpansionAssociativeMapVariable() { string template = "{?keys*}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); string[] allowed = { "?comma=%2C&dot=.&semi=%3B", "?comma=%2C&semi=%3B&dot=.", "?dot=.&comma=%2C&semi=%3B", "?dot=.&semi=%3B&comma=%2C", "?semi=%3B&comma=%2C&dot=.", "?semi=%3B&dot=.&comma=%2C" }; CollectionAssert.Contains(allowed, uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["keys"], (ICollection)match.Bindings["keys"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["keys"], (ICollection)match.Bindings["keys"].Value); }
public void TestPathSegmentExpansionWithEncodedCharacters() { string template = "/test{/Some%20Thing}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("/test/foo", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["Some%20Thing"], match.Bindings["Some%20Thing"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["Some%20Thing"], match.Bindings["Some%20Thing"].Value); }
public void TestQueryContinuationExpansion() { string template = "?fixed=yes{&x}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("?fixed=yes&x=1024", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri); Assert.IsNotNull(match); Assert.AreEqual(Variables["x"], match.Bindings["x"].Value); match = uriTemplate.Match(uri, RequiredVariables); Assert.IsNotNull(match); Assert.AreEqual(Variables["x"], match.Bindings["x"].Value); }
public void TestPathSegmentExpansion() { string template = "{/var}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("/value", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri); Assert.IsNotNull(match); Assert.AreEqual(Variables["var"], match.Bindings["var"].Value); match = uriTemplate.Match(uri, RequiredVariables); Assert.IsNotNull(match); Assert.AreEqual(Variables["var"], match.Bindings["var"].Value); }
public void TestPathParameterExpansionPrefixVariable() { string template = "{;hello:5}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual(";hello=Hello", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual("Hello", match.Bindings["hello"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual("Hello", match.Bindings["hello"].Value); }
public void TestSimpleExpansionLongPrefix() { string template = "{var:30}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("value", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual(Variables["var"], match.Bindings["var"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual(Variables["var"], match.Bindings["var"].Value); }
public void TestEscapeSequences7() { string template = "{?assoc_special_chars*}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("?%C5%A1%C3%B6%C3%A4%C5%B8%C5%93%C3%B1%C3%AA%E2%82%AC%C2%A3%C2%A5%E2%80%A1%C3%91%C3%92%C3%93%C3%94%C3%95=%C3%96%C3%97%C3%98%C3%99%C3%9A%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%C3%A6%C3%A7%C3%BF", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables1["assoc_special_chars"], (ICollection)match.Bindings["assoc_special_chars"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables1["assoc_special_chars"], (ICollection)match.Bindings["assoc_special_chars"].Value); }
public void TestEscapeSequences5() { string template = "/lookup{?Stra%C3%9Fe}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("/lookup?Stra%C3%9Fe=Gr%C3%BCner%20Weg", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["Stra%C3%9Fe"], match.Bindings["Stra%C3%9Fe"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["Stra%C3%9Fe"], match.Bindings["Stra%C3%9Fe"].Value); }
public void TestEscapeSequences4() { string template = "/service{?word}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("/service?word=dr%C3%BCcken", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["word"], match.Bindings["word"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["word"], match.Bindings["word"].Value); }
public void TestEscapeSequences3() { string template = "/go{?uri}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("/go?uri=http%3A%2F%2Fexample.org%2F%3Furi%3Dhttp%253A%252F%252Fexample.org%252F", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["uri"], match.Bindings["uri"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["uri"], match.Bindings["uri"].Value); }
public void TestEscapeSequences2() { string template = "/sparql{?query}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("/sparql?query=PREFIX%20dc%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E%20SELECT%20%3Fbook%20%3Fwho%20WHERE%20%7B%20%3Fbook%20dc%3Acreator%20%3Fwho%20%7D", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["query"], match.Bindings["query"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["query"], match.Bindings["query"].Value); }
public void TestQueryExpansionWithIntegerVariable() { string template = "/set{?number}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("/set?number=6", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["number"].ToString(), match.Bindings["number"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); Assert.AreEqual(Variables1["number"].ToString(), match.Bindings["number"].Value); }
public void TestFragmentExpansionPrefixVariable() { string template = "{#path:6}/here"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("#/foo/b/here", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual(((string)Variables["path"]).Substring(0, 6), match.Bindings["path"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual(((string)Variables["path"]).Substring(0, 6), match.Bindings["path"].Value); }
public void TestCompoundQueryExpansionEmptyMap() { string template = "{?empty_assoc*}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables3); Assert.AreEqual(string.Empty, uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "empty_list" }, new[] { "empty_assoc" }); Assert.IsNotNull(match); Assert.AreEqual(0, match.Bindings.Count); match = uriTemplate.Match(uri, RequiredVariables3, new[] { "empty_list" }, new[] { "empty_assoc" }); Assert.IsNotNull(match); Assert.AreEqual(0, match.Bindings.Count); }
public void TestPathSegmentExpansionMultipleReferencesPrefix() { string template = "{/var:1,var}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("/v/value", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual(Variables["var"], match.Bindings["var"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual(Variables["var"], match.Bindings["var"].Value); }
public void TestQueryExpansionNumericKey() { string template = "{?42}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables4); Assert.AreEqual("?42=The%20Answer%20to%20the%20Ultimate%20Question%20of%20Life%2C%20the%20Universe%2C%20and%20Everything", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "1337" }, new[] { "german" }); Assert.IsNotNull(match); Assert.AreEqual(Variables4["42"], match.Bindings["42"].Value); match = uriTemplate.Match(uri, RequiredVariables4, new[] { "1337" }, new[] { "german" }); Assert.IsNotNull(match); Assert.AreEqual(Variables4["42"], match.Bindings["42"].Value); }
public void TestSimpleExpansionNumericKeyCollectionVariable() { string template = "{1337}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables4); Assert.AreEqual("leet,as,it,can,be", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "1337" }, new[] { "german" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables4["1337"], (ICollection)match.Bindings["1337"].Value); match = uriTemplate.Match(uri, RequiredVariables4, new[] { "1337" }, new[] { "german" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables4["1337"], (ICollection)match.Bindings["1337"].Value); }
public void TestCompoundQueryExpansionNumericKeyCollectionVariable() { string template = "{?1337*}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables4); Assert.AreEqual("?1337=leet&1337=as&1337=it&1337=can&1337=be", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "1337" }, new[] { "german" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables4["1337"], (ICollection)match.Bindings["1337"].Value); match = uriTemplate.Match(uri, RequiredVariables4, new[] { "1337" }, new[] { "german" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables4["1337"], (ICollection)match.Bindings["1337"].Value); }
public void TestCompoundPathParameterExpansionCollectionVariable() { string template = "{;list*}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual(";list=red;list=green;list=blue", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["list"], (ICollection)match.Bindings["list"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["list"], (ICollection)match.Bindings["list"].Value); }
public void TestReservedExpansionReservedCharactersInQuery() { string template = "here?ref={+path}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("here?ref=/foo/bar", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri); Assert.IsNotNull(match); Assert.AreEqual(Variables["path"], match.Bindings["path"].Value); match = uriTemplate.Match(uri, RequiredVariables); Assert.IsNotNull(match); Assert.AreEqual(Variables["path"], match.Bindings["path"].Value); }
public void TestCompoundPathSegmentExpansion() { string template = "{/id*}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables1); Assert.AreEqual("/person", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); CollectionAssert.AreEqual(new[] { Variables1["id"] }, (ICollection)match.Bindings["id"].Value); match = uriTemplate.Match(uri, RequiredVariables1, new[] { "fields", "geocode" }, new[] { "assoc_special_chars" }); Assert.IsNotNull(match); CollectionAssert.AreEqual(new[] { Variables1["id"] }, (ICollection)match.Bindings["id"].Value); }
public void TestReservedExpansionEscaping() { string template = "{+hello}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("Hello%20World!", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri); Assert.IsNotNull(match); Assert.AreEqual(Variables["hello"], match.Bindings["hello"].Value); match = uriTemplate.Match(uri, RequiredVariables); Assert.IsNotNull(match); Assert.AreEqual(Variables["hello"], match.Bindings["hello"].Value); }
public void TestQueryContinuationExpansionPrefixVariable() { string template = "{&var:3}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("&var=val", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual("val", match.Bindings["var"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); Assert.AreEqual("val", match.Bindings["var"].Value); }
public void TestQueryContinuationExpansionCollectionVariable() { string template = "{&list}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("&list=red,green,blue", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["list"], (ICollection)match.Bindings["list"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["list"], (ICollection)match.Bindings["list"].Value); }
public void TestSimpleExpansionMultipleVariablesInQuery() { string template = "map?{x,y}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("map?1024,768", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri); Assert.IsNotNull(match); Assert.AreEqual(Variables["x"], match.Bindings["x"].Value); Assert.AreEqual(Variables["y"], match.Bindings["y"].Value); match = uriTemplate.Match(uri, RequiredVariables); Assert.IsNotNull(match); Assert.AreEqual(Variables["x"], match.Bindings["x"].Value); Assert.AreEqual(Variables["y"], match.Bindings["y"].Value); }
public void TestCompoundPathSegmentExpansionCollectionVariableAndPrefixVariableReference() { string template = "{/list*,path:4}"; global::UriTemplate.Core.UriTemplate uriTemplate = new global::UriTemplate.Core.UriTemplate(template); Uri uri = uriTemplate.BindByName(Variables); Assert.AreEqual("/red/green/blue/%2Ffoo", uri.OriginalString); UriTemplateMatch match = uriTemplate.Match(uri, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["list"], (ICollection)match.Bindings["list"].Value); Assert.AreEqual(((string)Variables["path"]).Substring(0, 4), match.Bindings["path"].Value); match = uriTemplate.Match(uri, RequiredVariables, new[] { "list" }, new[] { "keys" }); Assert.IsNotNull(match); CollectionAssert.AreEqual((ICollection)Variables["list"], (ICollection)match.Bindings["list"].Value); Assert.AreEqual(((string)Variables["path"]).Substring(0, 4), match.Bindings["path"].Value); }