Home / Function/ Test_Bind_RepeatParserWithSameStruct() — fiber Function Reference

Test_Bind_RepeatParserWithSameStruct() — fiber Function Reference

Architecture documentation for the Test_Bind_RepeatParserWithSameStruct() function in bind_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  3cf47f32_927d_ad3f_3e79_1326161c6a3a["Test_Bind_RepeatParserWithSameStruct()"]
  55065b01_f5dc_4e53_5a74_5ecc7aca8f52["bind_test.go"]
  3cf47f32_927d_ad3f_3e79_1326161c6a3a -->|defined in| 55065b01_f5dc_4e53_5a74_5ecc7aca8f52
  style 3cf47f32_927d_ad3f_3e79_1326161c6a3a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

bind_test.go lines 2057–2112

func Test_Bind_RepeatParserWithSameStruct(t *testing.T) {
	t.Parallel()
	app := New(Config{
		CBOREncoder: cbor.Marshal,
		CBORDecoder: cbor.Unmarshal,
	})
	c := app.AcquireCtx(&fasthttp.RequestCtx{})
	defer app.ReleaseCtx(c)

	type Request struct {
		QueryParam  string `query:"query_param"`
		HeaderParam string `header:"header_param"`
		BodyParam   string `json:"body_param" xml:"body_param" form:"body_param"`
	}

	r := new(Request)

	c.Request().URI().SetQueryString("query_param=query_param")
	require.NoError(t, c.Bind().Query(r))
	require.Equal(t, "query_param", r.QueryParam)

	c.Request().Header.Add("header_param", "header_param")
	require.NoError(t, c.Bind().Header(r))
	require.Equal(t, "header_param", r.HeaderParam)

	var gzipJSON bytes.Buffer
	w := gzip.NewWriter(&gzipJSON)
	_, err := w.Write([]byte(`{"body_param":"body_param"}`))
	require.NoError(t, err)
	err = w.Close()
	require.NoError(t, err)
	c.Request().Header.SetContentType(MIMEApplicationJSON)
	c.Request().Header.Set(HeaderContentEncoding, "gzip")
	c.Request().SetBody(gzipJSON.Bytes())
	c.Request().Header.SetContentLength(len(gzipJSON.Bytes()))
	require.NoError(t, c.Bind().Body(r))
	require.Equal(t, "body_param", r.BodyParam)
	c.Request().Header.Del(HeaderContentEncoding)

	testDecodeParser := func(contentType, body string) {
		c.Request().Header.SetContentType(contentType)
		c.Request().SetBody([]byte(body))
		c.Request().Header.SetContentLength(len(body))
		require.NoError(t, c.Bind().Body(r))
		require.Equal(t, "body_param", r.BodyParam)
	}

	cb, err := cbor.Marshal(&Request{BodyParam: "body_param"})
	require.NoError(t, err, "Failed to marshal CBOR data")

	testDecodeParser(MIMEApplicationJSON, `{"body_param":"body_param"}`)
	testDecodeParser(MIMEApplicationXML, `<Demo><body_param>body_param</body_param></Demo>`)
	testDecodeParser(MIMEApplicationCBOR, string(cb))
	testDecodeParser(MIMEApplicationForm, "body_param=body_param")
	testDecodeParser(MIMEMultipartForm+`;boundary="b"`, "--b\r\nContent-Disposition: form-data; name=\"body_param\"\r\n\r\nbody_param\r\n--b--")
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does Test_Bind_RepeatParserWithSameStruct() do?
Test_Bind_RepeatParserWithSameStruct() is a function in the fiber codebase, defined in bind_test.go.
Where is Test_Bind_RepeatParserWithSameStruct() defined?
Test_Bind_RepeatParserWithSameStruct() is defined in bind_test.go at line 2057.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free