go test -run Test_Bind_Query_Map -v
(t *testing.T)
| 474 | |
| 475 | // go test -run Test_Bind_Query_Map -v |
| 476 | func Test_Bind_Query_Map(t *testing.T) { |
| 477 | t.Parallel() |
| 478 | |
| 479 | app := New(Config{ |
| 480 | EnableSplittingOnParsers: true, |
| 481 | }) |
| 482 | c := app.AcquireCtx(&fasthttp.RequestCtx{}) |
| 483 | |
| 484 | c.Request().SetBody([]byte(``)) |
| 485 | c.Request().Header.SetContentType("") |
| 486 | c.Request().URI().SetQueryString("id=1&name=tom&hobby=basketball&hobby=football") |
| 487 | q := make(map[string][]string) |
| 488 | require.NoError(t, c.Bind().Query(&q)) |
| 489 | require.Len(t, q["hobby"], 2) |
| 490 | |
| 491 | c.Request().URI().SetQueryString("id=1&name=tom&hobby=basketball,football") |
| 492 | q = make(map[string][]string) |
| 493 | require.NoError(t, c.Bind().Query(&q)) |
| 494 | require.Len(t, q["hobby"], 2) |
| 495 | |
| 496 | c.Request().URI().SetQueryString("id=1&name=tom&hobby=soccer&hobby=basketball,football") |
| 497 | q = make(map[string][]string) |
| 498 | require.NoError(t, c.Bind().Query(&q)) |
| 499 | require.Len(t, q["hobby"], 3) |
| 500 | |
| 501 | c.Request().URI().SetQueryString("id=1&name=tom&hobby=soccer") |
| 502 | qq := make(map[string]string) |
| 503 | require.NoError(t, c.Bind().Query(&qq)) |
| 504 | require.Equal(t, "1", qq["id"]) |
| 505 | |
| 506 | empty := make(map[string][]string) |
| 507 | c.Request().URI().SetQueryString("") |
| 508 | require.NoError(t, c.Bind().Query(&empty)) |
| 509 | require.Empty(t, empty["hobby"]) |
| 510 | |
| 511 | em := make(map[string][]int) |
| 512 | c.Request().URI().SetQueryString("") |
| 513 | require.ErrorIs(t, c.Bind().Query(&em), binder.ErrMapNotConvertible) |
| 514 | } |
| 515 | |
| 516 | // go test -run Test_Bind_Query_WithSetParserDecoder -v |
| 517 | func Test_Bind_Query_WithSetParserDecoder(t *testing.T) { |