go test -run Test_Ctx_Queries -v
(t *testing.T)
| 8734 | |
| 8735 | // go test -run Test_Ctx_Queries -v |
| 8736 | func Test_Ctx_Queries(t *testing.T) { |
| 8737 | t.Parallel() |
| 8738 | app := New() |
| 8739 | c := app.AcquireCtx(&fasthttp.RequestCtx{}) |
| 8740 | |
| 8741 | c.Request().SetBody([]byte(``)) |
| 8742 | c.Request().Header.SetContentType("") |
| 8743 | c.Request().URI().SetQueryString("id=1&name=tom&hobby=basketball,football&favouriteDrinks=milo,coke,pepsi&alloc=&no=1&field1=value1&field1=value2&field2=value3&list_a=1&list_a=2&list_a=3&list_b[]=1&list_b[]=2&list_b[]=3&list_c=1,2,3") |
| 8744 | |
| 8745 | queries := c.Queries() |
| 8746 | require.Equal(t, "1", queries["id"]) |
| 8747 | require.Equal(t, "tom", queries["name"]) |
| 8748 | require.Equal(t, "basketball,football", queries["hobby"]) |
| 8749 | require.Equal(t, "milo,coke,pepsi", queries["favouriteDrinks"]) |
| 8750 | require.Empty(t, queries["alloc"]) |
| 8751 | require.Equal(t, "1", queries["no"]) |
| 8752 | require.Equal(t, "value2", queries["field1"]) |
| 8753 | require.Equal(t, "value3", queries["field2"]) |
| 8754 | require.Equal(t, "3", queries["list_a"]) |
| 8755 | require.Equal(t, "3", queries["list_b[]"]) |
| 8756 | require.Equal(t, "1,2,3", queries["list_c"]) |
| 8757 | |
| 8758 | c.Request().URI().SetQueryString("filters.author.name=John&filters.category.name=Technology&filters[customer][name]=Alice&filters[status]=pending") |
| 8759 | |
| 8760 | queries = c.Queries() |
| 8761 | require.Equal(t, "John", queries["filters.author.name"]) |
| 8762 | require.Equal(t, "Technology", queries["filters.category.name"]) |
| 8763 | require.Equal(t, "Alice", queries["filters[customer][name]"]) |
| 8764 | require.Equal(t, "pending", queries["filters[status]"]) |
| 8765 | |
| 8766 | c.Request().URI().SetQueryString("tags=apple,orange,banana&filters[tags]=apple,orange,banana&filters[category][name]=fruits&filters.tags=apple,orange,banana&filters.category.name=fruits") |
| 8767 | |
| 8768 | queries = c.Req().Queries() |
| 8769 | require.Equal(t, "apple,orange,banana", queries["tags"]) |
| 8770 | require.Equal(t, "apple,orange,banana", queries["filters[tags]"]) |
| 8771 | require.Equal(t, "fruits", queries["filters[category][name]"]) |
| 8772 | require.Equal(t, "apple,orange,banana", queries["filters.tags"]) |
| 8773 | require.Equal(t, "fruits", queries["filters.category.name"]) |
| 8774 | |
| 8775 | c.Request().URI().SetQueryString("filters[tags][0]=apple&filters[tags][1]=orange&filters[tags][2]=banana&filters[category][name]=fruits") |
| 8776 | |
| 8777 | queries = c.Queries() |
| 8778 | require.Equal(t, "apple", queries["filters[tags][0]"]) |
| 8779 | require.Equal(t, "orange", queries["filters[tags][1]"]) |
| 8780 | require.Equal(t, "banana", queries["filters[tags][2]"]) |
| 8781 | require.Equal(t, "fruits", queries["filters[category][name]"]) |
| 8782 | } |
| 8783 | |
| 8784 | // go test -v -run=^$ -bench=Benchmark_Ctx_Queries -benchmem -count=4 |
| 8785 | func Benchmark_Ctx_Queries(b *testing.B) { |