Beispiel #1
0
        public void ParseTest()
        {
            var q = new QueryString("foo=bar&baz=Lorem%20Ipsum");

            Assert.AreEqual(2, q.Count);
            Assert.IsTrue(q.ContainsKey("foo"));
            Assert.IsFalse(q.ContainsKey("abcdefg"));
            CollectionAssert.AreEqual(new string[] { "foo", "baz" }, q.Keys.ToArray());

            Assert.AreEqual("bar", q["foo"]);
            Assert.AreEqual("Lorem Ipsum", q["baz"]);
            Assert.IsNull(q["qux"]);
        }
Beispiel #2
0
        public void OverlayTest()
        {
            var x = new QueryString("abc=1");
            var y = new QueryString("def=2");

            x.Overlay(y);

            Assert.AreEqual(2, x.Count);
            Assert.AreEqual(1, y.Count);

            Assert.IsTrue(x.ContainsKey("abc"));
            Assert.IsTrue(x.ContainsKey("def"));
            Assert.IsFalse(y.ContainsKey("abc"));
            Assert.IsTrue(y.ContainsKey("def"));
        }
Beispiel #3
0
        public object GetValue(ParameterInfo parameter)
        {
            if (parameter.GetCustomAttribute <FromRequestBodyAttribute>() != null)
            {
                return(JsonConvert.DeserializeObject(RequestBody(), parameter.ParameterType));
            }

            var name = parameter.Name.ToLower();

            if (!QueryString.ContainsKey(name))
            {
                return(null);
            }

            if (parameter.ParameterType == typeof(string))
            {
                return(QueryString[name]);
            }

            if (parameter.ParameterType == typeof(int))
            {
                return(int.Parse(QueryString[name], CultureInfo.InvariantCulture));
            }

            if (parameter.ParameterType == typeof(double))
            {
                return(double.Parse(QueryString[name], CultureInfo.InvariantCulture));
            }

            return(null);
        }
Beispiel #4
0
        public TOut GetQueryStringValue <TOut>(string name)
        {
            if (!QueryString.ContainsKey(name))
            {
                return(default(TOut));
            }
            object value = QueryString[name];

            if (value == null)
            {
                return(default(TOut));
            }
            return((TOut)value);
        }
        public AWebSocketClient AddArgument(string argumentName, string argumentValue)
        {
            if (QueryString.ContainsKey(argumentName))
            {
                QueryString[argumentName] = argumentValue;
            }
            else
            {
                QueryString.Add(argumentName, argumentValue);
            }

            UriBuilder.Query =
                string.Join("&", QueryString.Keys.Where(key => !string.IsNullOrWhiteSpace(QueryString[key])).Select(key => string.Format("{0}={1}", WebUtility.UrlEncode(key), WebUtility.UrlEncode(QueryString[key]))));

            return(this);
        }
Beispiel #6
0
        /// <inheritdoc />
        public override bool IsMatch(MockHttpRequestContext requestContext)
        {
            if (requestContext is null)
            {
                throw new ArgumentNullException(nameof(requestContext));
            }

            QueryString query = QueryString.Parse(requestContext.Request.RequestUri.Query);

            // When match collection is empty, behavior is flipped, and we expect no query string parameters on request.
            if (_matchQs.Count == 0 && query.Count > 0)
            {
                return(false);
            }

            return(_matchQs.All(q => query.ContainsKey(q.Key) &&
                                (BothAreEmpty(query[q.Key], q.Value) ||
                                 HasOneOf(query[q.Key], q.Value))
                                ));
        }
        public override ThreadPageMetadata LoadThreadPage(Uri uri)
        {
            string url = uri.AbsoluteUri;
            var doc = new AwfulWebClient().FetchHtml(url).ToHtmlDocument();
            var page = ThreadPageParser.ParseThreadPage(doc);

            // check for post id
            QueryString query = new QueryString(url);

            if (page != null && query.ContainsKey("postid"))
            {
                string id = query["postid"];
                var targetPost = page.Posts.Where(post => post.PostID.Equals(id)).SingleOrDefault();
                if (targetPost != null)
                {
                    page.TargetPostIndex = page.Posts.IndexOf(targetPost);
                }
            }

            return page;
        }
Beispiel #8
0
 public bool ContainsKey(string name)
 {
     return(QueryString != null && QueryString.ContainsKey(name));
 }