MCPcopy
hub / github.com/gofiber/fiber / Test_Bind_Header_Schema

Function Test_Bind_Header_Schema

bind_test.go:844–938  ·  view source on GitHub ↗

go test -run Test_Bind_Header_Schema -v

(t *testing.T)

Source from the content-addressed store, hash-verified

842
843// go test -run Test_Bind_Header_Schema -v
844func Test_Bind_Header_Schema(t *testing.T) {
845 t.Parallel()
846 app := New()
847 c := app.AcquireCtx(&fasthttp.RequestCtx{})
848
849 type Header1 struct {
850 Name string `header:"Name,required"`
851 Nested struct {
852 Age int `header:"Age"`
853 } `header:"Nested,required"`
854 }
855 c.Request().SetBody([]byte(``))
856 c.Request().Header.SetContentType("")
857
858 c.Request().Header.Add("Name", "tom")
859 c.Request().Header.Add("Nested.Age", "10")
860 q := new(Header1)
861 require.NoError(t, c.Bind().Header(q))
862
863 c.Request().Header.Del("Name")
864 q = new(Header1)
865 err := c.Bind().Header(q)
866 require.Error(t, err)
867 require.Equal(t, "bind \"Name\" from header: Name is empty", err.Error())
868 require.ErrorAs(t, err, &MultiError{})
869
870 c.Request().Header.Add("Name", "tom")
871 c.Request().Header.Del("Nested.Age")
872 c.Request().Header.Add("Nested.Agex", "10")
873 q = new(Header1)
874 require.NoError(t, c.Bind().Header(q))
875
876 c.Request().Header.Del("Nested.Agex")
877 q = new(Header1)
878 err = c.Bind().Header(q)
879 require.Error(t, err)
880 require.Equal(t, "bind \"Nested\" from header: Nested is empty", err.Error())
881 require.ErrorAs(t, err, &MultiError{})
882
883 c.Request().Header.Del("Nested.Agex")
884 c.Request().Header.Del("Name")
885
886 type Header2 struct {
887 Name string `header:"Name"`
888 Nested struct {
889 Age int `header:"age,required"`
890 } `header:"Nested"`
891 }
892
893 c.Request().Header.Add("Name", "tom")
894 c.Request().Header.Add("Nested.Age", "10")
895
896 h2 := new(Header2)
897 require.NoError(t, c.Bind().Header(h2))
898
899 c.Request().Header.Del("Name")
900 h2 = new(Header2)
901 require.NoError(t, c.Bind().Header(h2))

Callers

nothing calls this directly

Calls 8

AcquireCtxMethod · 0.80
NewFunction · 0.70
RequestMethod · 0.65
AddMethod · 0.65
BindMethod · 0.65
DelMethod · 0.65
ErrorMethod · 0.65
HeaderMethod · 0.45

Tested by

no test coverage detected