public IRestRequest WithUriTemplate(string uriTemplate) { uriTemplate = UriTemplateHelper.AppendUriTemplateSuffix(this.uriTemplatePrefix + uriTemplate, this.uriTemplateSuffix); this.uriTemplate = UriTemplate.For(uriTemplate, false) .WithValueFormatter(this.valueFormatter); return(this); }
private static void SpecTestCaseTests(SpecTestCase testCase, bool isPartial) { var uriTemplate = UriTemplate.For(testCase.Template); foreach (var variable in testCase.Variables) { uriTemplate.WithParameter(variable.Key, variable.Value); } switch (testCase) { case SpecFailTestCase x: ShouldFail(uriTemplate, isPartial); break; case SpecListTestCase x: ShouldMatchOne(uriTemplate, x, isPartial); break; case SpecStringTestCase x: ShouldMatch(uriTemplate, x, isPartial); break; default: break; } }
public void ShouldQueryObjectBeExpandedAsExpected(string expected, Options options, Filters filters) { var result = UriTemplate.For("/api{?options*,filters*}") .WithParameter("options", options) .WithParameter("filters", filters) .ExpandToString(); result.ShouldBeEquivalentTo(expected); }
public void Example06() { string uriString = UriTemplate.For("http://example.org/{area}/news{?type,count}") .WithParameter("count", 10) .WithPartialExpand() .ExpandToString(); uriString.ShouldBeEquivalentTo("http://example.org/{area}/news?count=10{&type}"); }
public void Example05() { string uriString = UriTemplate.For("http://example.org/{resource}{?genre,count}") .WithParameter("resource", "books") .WithParameter("count", 10) .ExpandToString(); uriString.ShouldBeEquivalentTo("http://example.org/books?count=10"); }
public void Example03() { string uriString = UriTemplate.For("http://example.org/{resource}{?genre*}") .WithParameter("resource", "books") .WithParameter("genre", "sci-fi", "horror", "fantasy") .ExpandToString(); uriString.ShouldBeEquivalentTo("http://example.org/books?genre=sci-fi&genre=horror&genre=fantasy"); }
public void ShouldQueryObjectBeExpandedAsExpected() { Filters filters = new Filters { Year = 1988, Genres = new[] { "action", "adventure" } }; var result = UriTemplate.For("/api{?filters*}") .WithParameter("filters", filters) .ExpandToString(); result.ShouldBeEquivalentTo("/api?year=1988&genres=action,adventure"); }
public void ShouldHaveRightCases() { CustomQueryObject customQueryObject = new CustomQueryObject { KebabCase = 1, LowerCamelCase = 2, MyOwnFormat = 3 }; var result = UriTemplate.For("/api{?filters*}") .WithParameter("filters", customQueryObject) .ExpandToString(); result.ShouldBeEquivalentTo("/api?kebab-case=1&lowerCamelCase=2&WithMyOwnKey=3"); }
public void Example04() { Dictionary <string, string> options = new Dictionary <string, string> { ["genre"] = "sci-fi", ["count"] = "10", ["author"] = "George R. R. Martin", }; string uriString = UriTemplate.For("http://example.org/{resource}{?options*}") .WithParameter("resource", "books") .WithParameter("options", options) .ExpandToString(); uriString.ShouldBeEquivalentTo("http://example.org/books?genre=sci-fi&count=10&author=George%20R.%20R.%20Martin"); }
public void CascadingPartialExpandShouldBeCorrect(string template, string expected) { var uriTemplate = UriTemplate.For(template) .WithPartialExpand(); foreach (var key in Variables.Keys) { uriTemplate.WithParameter(key, Variables[key]); uriTemplate = UriTemplate.For(uriTemplate.ExpandToString()).WithPartialExpand(); } var result = uriTemplate.WithPartialExpand(false) .ExpandToString(); result.ShouldBeEquivalentTo(expected); }
public void Example07() { Func <object, string> func = x => { switch (x) { case Vector2 y: return($"({y.X},{y.Y})"); default: return(x?.ToString()); } }; Vector2 u = new Vector2(3, 4); string uriString = UriTemplate.For("http://example.org{/vector}") .WithParameter("vector", u) .WithValueFormatter(func) .ExpandToString(); uriString.ShouldBeEquivalentTo("http://example.org/%283%2C4%29"); }