示例#1
0
        public void TestEnumerator()
        {
            QueryString qs = new QueryString();

            qs.AddList("arg1", "value");
            qs.AddList("arg1", "value2");
            qs.Add("arg2", "value2");
            int count = 0;

            foreach (var item in qs)
            {
                count++;
                Assert.IsInstanceOfType(item.Key, typeof(string));
                Assert.IsInstanceOfType(item.Value.Item1, typeof(ParamType));
                Assert.IsInstanceOfType(item.Value.Item2, typeof(string));
                if (item.Key.Equals("arg1"))
                {
                    Assert.AreEqual(ParamType.List, item.Value.Item1);
                }
                else if (item.Key.Equals("arg2"))
                {
                    Assert.AreEqual(ParamType.Single, item.Value.Item1);
                }
            }
            Assert.AreEqual(3, count);
        }
示例#2
0
        public void TestRemoveListArguments()
        {
            QueryString qs = new QueryString();

            qs.AddList("arg1", "value");
            qs.AddList("arg1", "value2");
            qs.RemoveKey("arg1");
            qs.AddList("arg2", "value");
            Assert.AreEqual("?arg2=value", qs.ToString());
        }
示例#3
0
        public void TestListArguments()
        {
            QueryString qs = new QueryString();

            qs.AddList("arg1", "value");
            qs.AddList("arg1", "value2");
            Assert.AreEqual("?arg1=value&arg1=value2", qs.ToString());
            qs.AddList("arg2", "value");
            Assert.AreEqual(true, qs.ToString().Contains("arg2=value"));
        }
示例#4
0
        public void TestGetListArguments()
        {
            QueryString qs = new QueryString();

            qs.AddList("arg1", "value");
            qs.AddList("arg1", "value2");
            qs.AddList("arg2", "value");
            bool result = qs.TryGetList("arg1", out string[] values);

            Assert.IsTrue(values.SequenceEqual(new string[] { "value", "value2" }));
            Assert.IsTrue(result);
            result = qs.TryGetList("arg3", out string[] valuesNull);
            Assert.IsNull(valuesNull);
            Assert.IsFalse(result);
        }
示例#5
0
 public Builder WithQueryStringParam(string key, string value, ParamType type = ParamType.Single)
 {
     if (type.Equals(ParamType.Single))
     {
         queryString.Add(key, value);
     }
     else
     {
         queryString.AddList(key, value);
     }
     return(this);
 }
示例#6
0
            protected internal Builder(RequestHandler request)
            {
                this.request          = new RequestHandler();
                this.request.BaseUrl  = request.BaseUrl;
                this.request.Endpoint = request.Endpoint;
                queryString           = new QueryString();
                foreach (KeyValuePair <string, (ParamType Type, string ParamValue)> kvp in request.queryString)
                {
                    switch (kvp.Value.Type)
                    {
                    case ParamType.List:
                        queryString.AddList(kvp.Key, kvp.Value.ParamValue);
                        break;

                    case ParamType.Single:
                        queryString.Add(kvp.Key, kvp.Value.ParamValue);
                        break;

                    default:
                        break;
                    }
                }
            }