Esempio n. 1
0
        public void ParseQueryString_ArrayWithNoItems()
        {
            // Given
            var queryString = "?ids[]=";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var array = args["ids"] as object[];

            Assert.Empty(array);
        }
Esempio n. 2
0
        public IDictionary <string, object> GetQueryArgs(HttpContext httpContext)
        {
            var cache = httpContext.GetCache();
            var args  = cache["QueryArgs"] as IDictionary <string, object>;

            if (args == null)
            {
                var queryString = httpContext.Request.QueryString.Value;
                cache["QueryArgs"] = args = UriUtil.ParseQueryString(queryString);
            }
            return(args);
        }
Esempio n. 3
0
        public void ParseQueryString_Decimal()
        {
            // Given
            var queryString = "?debit=-20.02&credit=15,51";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] { -20.02M, 15.51M };
            var obtained = new object[] { args["debit"], args["credit"] };

            Assert.Equal(expected, obtained);
        }
Esempio n. 4
0
        public void ParseQueryString_Integer()
        {
            // Given
            var queryString = "?zero=0&plus=010&minus=-020";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] { 0, 10, -20 };
            var obtained = new object[] { args["zero"], args["plus"], args["minus"] };

            Assert.Equal(expected, obtained);
        }
Esempio n. 5
0
        public void ParseQueryString_Boolean()
        {
            // Given
            var queryString = "?up=true&down=false&forward";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] { true, false, true };
            var obtained = new object[] { args["up"], args["down"], args["forward"] };

            Assert.Equal(expected, obtained);
        }
Esempio n. 6
0
        public void ParseQueryString_String()
        {
            // Given
            var queryString = "?empty=&text=hello, world!";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] { null, "hello, world!" };
            var obtained = new object[] { args["empty"], args["text"] };

            Assert.Equal(expected, obtained);
        }
Esempio n. 7
0
        public void ParseQueryString_Array()
        {
            // Given
            var queryString = "?ids=1&ids[]=2&ids=3";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] { 1, 2, 3 };
            var obtained = args["ids"] as object[];

            Assert.Equal(expected, obtained);
        }
Esempio n. 8
0
        public void ParseQueryString_ArrayWithOneItem()
        {
            // Given
            var queryString = "?ids[]=10";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] { 10 };
            var obtained = args["ids"] as object[];

            Assert.Equal(expected, obtained);
        }
Esempio n. 9
0
        public void ParseQueryString_Timespan()
        {
            // Given
            var queryString = "?interval=23:59&delay=10.23:59:59.999";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] {
                new TimeSpan(23, 59, 0),
                new TimeSpan(10, 23, 59, 59, 999)
            };
            var obtained = new object[] { args["interval"], args["delay"] };

            Assert.Equal(expected, obtained);
        }
Esempio n. 10
0
        public void ParseQueryString_DateTime()
        {
            // Given
            var queryString = "?at=2020-12-31T23:59:59&on=2020-12-31";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] {
                new DateTime(2020, 12, 31, 23, 59, 59),
                new DateTime(2020, 12, 31)
            };
            var obtained = new object[] { args["at"], args["on"] };

            Assert.Equal(expected, obtained);
        }
Esempio n. 11
0
        public void ParseQueryString_Range()
        {
            // Given
            var queryString = "?num.min=-20&num.max=20&age.min=2002-12-31&top.max=100.001";
            // When
            var args = UriUtil.ParseQueryString(queryString);
            // Then
            var expected = new object[] {
                -20, 20,
                new DateTime(2002, 12, 31), null,
                null, 100.001M
            };
            var obtained = new object[] {
                args["num"]?.Get("Min"), args["num"]?.Get("Max"),
                args["age"]?.Get("Min"), args["age"]?.Get("Max"),
                args["top"]?.Get("Min"), args["top"]?.Get("Max")
            };

            Assert.Equal(expected, obtained);
        }