go test -run Test_Bind_Header -v
(t *testing.T)
| 683 | |
| 684 | // go test -run Test_Bind_Header -v |
| 685 | func Test_Bind_Header(t *testing.T) { |
| 686 | t.Parallel() |
| 687 | app := New() |
| 688 | c := app.AcquireCtx(&fasthttp.RequestCtx{}) |
| 689 | |
| 690 | type Header struct { |
| 691 | Name string |
| 692 | Hobby []string |
| 693 | ID int |
| 694 | } |
| 695 | c.Request().SetBody([]byte(``)) |
| 696 | c.Request().Header.SetContentType("") |
| 697 | |
| 698 | c.Request().Header.Add("id", "1") |
| 699 | c.Request().Header.Add("Name", "John Doe") |
| 700 | c.Request().Header.Add("Hobby", "golang,fiber") |
| 701 | q := new(Header) |
| 702 | require.NoError(t, c.Bind().Header(q)) |
| 703 | require.Len(t, q.Hobby, 1) |
| 704 | |
| 705 | c.Request().Header.Del("hobby") |
| 706 | c.Request().Header.Add("Hobby", "golang,fiber,go") |
| 707 | q = new(Header) |
| 708 | require.NoError(t, c.Bind().Header(q)) |
| 709 | require.Len(t, q.Hobby, 1) |
| 710 | |
| 711 | empty := new(Header) |
| 712 | c.Request().Header.Del("hobby") |
| 713 | require.NoError(t, c.Bind().Query(empty)) |
| 714 | require.Empty(t, empty.Hobby) |
| 715 | |
| 716 | type Header2 struct { |
| 717 | Name string |
| 718 | Hobby string |
| 719 | FavouriteDrinks []string |
| 720 | Empty []string |
| 721 | Alloc []string |
| 722 | No []int64 |
| 723 | ID int |
| 724 | Bool bool |
| 725 | } |
| 726 | |
| 727 | c.Request().Header.Add("id", "2") |
| 728 | c.Request().Header.Add("Name", "Jane Doe") |
| 729 | c.Request().Header.Del("hobby") |
| 730 | c.Request().Header.Add("Hobby", "go,fiber") |
| 731 | c.Request().Header.Add("favouriteDrinks", "milo,coke,pepsi") |
| 732 | c.Request().Header.Add("alloc", "") |
| 733 | c.Request().Header.Add("no", "1") |
| 734 | |
| 735 | h2 := new(Header2) |
| 736 | h2.Bool = true |
| 737 | h2.Name = helloWorld |
| 738 | require.NoError(t, c.Bind().Header(h2)) |
| 739 | require.Equal(t, "go,fiber", h2.Hobby) |
| 740 | require.True(t, h2.Bool) |
| 741 | require.Equal(t, "Jane Doe", h2.Name) // check value get overwritten |
| 742 | require.Equal(t, []string{"milo,coke,pepsi"}, h2.FavouriteDrinks) |