Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        public void AppendingPathResetsUri()
        {
            var uriBuilder = new HttpPipelineUriBuilder();

            uriBuilder.Uri = new Uri("http://localhost/");
            uriBuilder.AppendPath("a");

            Assert.AreEqual("http://localhost/a", uriBuilder.Uri.ToString());
        }
Ejemplo n.º 3
0
        private Uri CreateFirstPageUri(string path)
        {
            var firstPage = new HttpPipelineUriBuilder();

            firstPage.Uri = _vaultUri;
            firstPage.AppendPath(path);
            firstPage.AppendQuery("api-version", ApiVersion);

            return(firstPage.Uri);
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        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());
        }
Ejemplo n.º 8
0
        => 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);
            }
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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());
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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());
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
            }
        }
Ejemplo n.º 18
0
        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());
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
0
        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);
 }
Ejemplo n.º 24
0
 void BuildUriForKvRoute(HttpPipelineUriBuilder builder, ConfigurationSetting keyValue)
 => BuildUriForKvRoute(builder, keyValue.Key, keyValue.Label);     // TODO (pri 2) : does this need to filter ETag?
Ejemplo n.º 25
0
 void BuildUriForRevisions(HttpPipelineUriBuilder builder, SettingSelector selector)
 {
     builder.Uri = _baseUri;
     builder.AppendPath(RevisionsRoute);
     BuildBatchQuery(builder, selector);
 }