public void AppendingQueryResetsUri() { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Uri = new Uri("http://localhost/"); uriBuilder.AppendQuery("a", "b"); Assert.AreEqual("http://localhost/?a=b", uriBuilder.Uri.ToString()); }
public void AppendingPathResetsUri() { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Uri = new Uri("http://localhost/"); uriBuilder.AppendPath("a"); Assert.AreEqual("http://localhost/a", uriBuilder.Uri.ToString()); }
private Uri CreateFirstPageUri(string path) { var firstPage = new HttpPipelineUriBuilder(); firstPage.Uri = _vaultUri; firstPage.AppendPath(path); firstPage.AppendQuery("api-version", ApiVersion); return(firstPage.Uri); }
public void QueryIsNotEscaped() { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Scheme = "http"; uriBuilder.Host = "localhost"; uriBuilder.Port = 80; uriBuilder.Query = "\u1234"; Assert.AreEqual("http://localhost/?\u1234", uriBuilder.Uri.ToString()); }
public void AppendQueryWithEmptyValueWorks() { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Scheme = "http"; uriBuilder.Host = "localhost"; uriBuilder.Port = 80; uriBuilder.AppendQuery("a", null); Assert.AreEqual("http://localhost/?a=", uriBuilder.Uri.ToString()); }
public void AddsLeadingQuestionMarkToQuery(string query, string expected) { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Scheme = "http"; uriBuilder.Host = "localhost"; uriBuilder.Port = 80; uriBuilder.Query = query; Assert.AreEqual(expected, uriBuilder.Uri.ToString()); }
public void AddsLeadingSlashToPath(string path, string expected) { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Scheme = "http"; uriBuilder.Host = "localhost"; uriBuilder.Port = 80; uriBuilder.Path = path; Assert.AreEqual(expected, uriBuilder.Uri.ToString()); }
=> BuildUriForKvRoute(builder, keyValue.Key, keyValue.Label); // TODO (pri 2) : does this need to filter ETag? void BuildUriForKvRoute(HttpPipelineUriBuilder builder, string key, string label) { builder.Uri = _baseUri; builder.AppendPath(KvRoute); builder.AppendPath(key); if (label != null) { builder.AppendQuery(LabelQueryFilter, label); } }
public void PathIsEscaped(string path, string expectedPath) { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Scheme = "http"; uriBuilder.Host = "localhost"; uriBuilder.Port = 80; uriBuilder.Path = path; Assert.AreEqual("http://localhost/" + expectedPath, uriBuilder.Uri.OriginalString); }
public void AppendingPathAfterQueryAndSettingTheUriWorks() { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Uri = new Uri("http://localhost/"); uriBuilder.AppendQuery("query", "value"); uriBuilder.AppendPath("a"); uriBuilder.AppendPath("b"); uriBuilder.AppendQuery("c", "d"); Assert.AreEqual("http://localhost/ab?query=value&c=d", uriBuilder.Uri.ToString()); }
public void AppendPathWorks(string initialPath, string append, string expectedResult) { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Scheme = "http"; uriBuilder.Host = "localhost"; uriBuilder.Port = 80; uriBuilder.Path = initialPath; uriBuilder.AppendPath(append); Assert.AreEqual(expectedResult, uriBuilder.Uri.OriginalString); }
public void FilterOnlyKey() { var key = "my-key"; var selector = new SettingSelector(key); var builder = new HttpPipelineUriBuilder(); builder.Uri = new Uri("http://localhost/"); ConfigurationClient.BuildBatchQuery(builder, selector, null); Assert.AreEqual($"http://localhost/?key={key}", builder.Uri.AbsoluteUri); }
public void FilterOnlyLabel() { var label = "my-label"; var selector = new SettingSelector(null, label); var builder = new HttpPipelineUriBuilder(); builder.Uri = new Uri("http://localhost/"); ConfigurationClient.BuildBatchQuery(builder, selector, null); Assert.AreEqual($"http://localhost/?key=*&label={label}", builder.Uri.AbsoluteUri); }
public void AppendQueryWorks(string initialQuery, string expectedResult) { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Scheme = "http"; uriBuilder.Host = "localhost"; uriBuilder.Port = 80; uriBuilder.Query = initialQuery; uriBuilder.AppendQuery("a", "b"); uriBuilder.AppendQuery("c", "d"); Assert.AreEqual(expectedResult, uriBuilder.Uri.ToString()); }
public void SettingAllFields() { var selector = new SettingSelector("key") { Fields = SettingFields.All }; var builder = new HttpPipelineUriBuilder(); builder.Uri = new Uri("http://localhost/"); ConfigurationClient.BuildBatchQuery(builder, selector, null); Assert.AreEqual($"http://localhost/?key=key", builder.Uri.AbsoluteUri); }
public void RoundtripWithUri(Uri uri) { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Uri = uri; Assert.AreEqual(uri.Scheme, uriBuilder.Scheme); Assert.AreEqual(uri.Host, uriBuilder.Host); Assert.AreEqual(uri.Port, uriBuilder.Port); Assert.AreEqual(uri.AbsolutePath, uriBuilder.Path); Assert.AreEqual(uri.Query, uriBuilder.Query); Assert.AreEqual(uri, uriBuilder.Uri); Assert.AreSame(uri, uriBuilder.Uri); }
internal void BuildBatchQuery(HttpPipelineUriBuilder builder, SettingSelector selector) { if (selector.Keys.Count > 0) { var keysCopy = new List <string>(); foreach (var key in selector.Keys) { if (key.IndexOfAny(ReservedCharacters) != -1) { keysCopy.Add(EscapeReservedCharacters(key)); } else { keysCopy.Add(key); } } var keys = string.Join(",", keysCopy).ToLower(); builder.AppendQuery(KeyQueryFilter, keys); } if (selector.Labels.Count > 0) { var labelsCopy = new List <string>(); foreach (var label in selector.Labels) { if (label == string.Empty) { labelsCopy.Add("\0"); } else { labelsCopy.Add(EscapeReservedCharacters(label)); } } var labels = string.Join(",", labelsCopy).ToLower(); builder.AppendQuery(LabelQueryFilter, labels); } if (selector.Fields != SettingFields.All) { var filter = (selector.Fields).ToString().ToLower(); builder.AppendQuery(FieldsQueryFilter, filter); } if (!string.IsNullOrEmpty(selector.BatchLink)) { builder.AppendQuery("after", selector.BatchLink); } }
public void SettingQueryToEmptyRemovesQuestionMark(string query) { var uriBuilder = new HttpPipelineUriBuilder(); uriBuilder.Scheme = "http"; uriBuilder.Host = "localhost"; uriBuilder.Port = 80; uriBuilder.Query = "a"; Assert.AreEqual("http://localhost/?a", uriBuilder.Uri.ToString()); uriBuilder.Query = query; Assert.AreEqual("http://localhost/", uriBuilder.Uri.ToString()); }
public void SettingSomeFields() { var service = new ConfigurationClient(s_connectionString); var selector = new SettingSelector("key") { Fields = SettingFields.Key | SettingFields.Value }; var builder = new HttpPipelineUriBuilder(); builder.Uri = new Uri("http://localhost/"); service.BuildBatchQuery(builder, selector); Assert.AreEqual($"http://localhost/?key=key&$select=key,%20value", builder.Uri.AbsoluteUri); }
public void FilterNullLabel() { var selector = new SettingSelector() { Labels = new List <string>() { "" }, }; var builder = new HttpPipelineUriBuilder(); builder.Uri = new Uri("http://localhost/"); ConfigurationClient.BuildBatchQuery(builder, selector, null); Assert.AreEqual("http://localhost/?key=*&label=%00", builder.Uri.AbsoluteUri); }
public void FilterReservedCharacter() { var selector = new SettingSelector() { Keys = new List <string>() { "my_key", "key,key" }, Labels = new List <string>() { "my_label", "label,label" }, }; var builder = new HttpPipelineUriBuilder(); builder.Uri = new Uri("http://localhost/"); ConfigurationClient.BuildBatchQuery(builder, selector, null); Assert.AreEqual(@"http://localhost/?key=my_key,key%5C,key&label=my_label,label%5C,label", builder.Uri.AbsoluteUri); }
public void FilterContains() { var service = new ConfigurationClient(s_connectionString); var selector = new SettingSelector() { Keys = new List <string>() { "*key*" }, Labels = new List <string>() { "*label*" }, }; var builder = new HttpPipelineUriBuilder(); builder.Uri = new Uri("http://localhost/"); service.BuildBatchQuery(builder, selector); Assert.AreEqual("http://localhost/?key=*key*&label=*label*", builder.Uri.AbsoluteUri); }
void BuildUriForGetBatch(HttpPipelineUriBuilder builder, SettingSelector selector, string pageLink) { builder.Uri = _baseUri; builder.AppendPath(KvRoute); BuildBatchQuery(builder, selector, pageLink); }
void BuildUriForKvRoute(HttpPipelineUriBuilder builder, ConfigurationSetting keyValue) => BuildUriForKvRoute(builder, keyValue.Key, keyValue.Label); // TODO (pri 2) : does this need to filter ETag?
void BuildUriForRevisions(HttpPipelineUriBuilder builder, SettingSelector selector) { builder.Uri = _baseUri; builder.AppendPath(RevisionsRoute); BuildBatchQuery(builder, selector); }