Home / Function/ TestMappingEmptyValues() — gin Function Reference

TestMappingEmptyValues() — gin Function Reference

Architecture documentation for the TestMappingEmptyValues() function in form_mapping_test.go from the gin codebase.

Entity Profile

Dependency Diagram

graph TD
  c43977df_7138_f186_5d0a_0187e50ce22b["TestMappingEmptyValues()"]
  36de44f8_6a8c_78ab_4c20_59952e276c82["form_mapping_test.go"]
  c43977df_7138_f186_5d0a_0187e50ce22b -->|defined in| 36de44f8_6a8c_78ab_4c20_59952e276c82
  style c43977df_7138_f186_5d0a_0187e50ce22b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

binding/form_mapping_test.go lines 1068–1146

func TestMappingEmptyValues(t *testing.T) {
	t.Run("slice with default", func(t *testing.T) {
		var s struct {
			Slice []int `form:"slice,default=5"`
		}

		// field not present
		err := mappingByPtr(&s, formSource{}, "form")
		require.NoError(t, err)
		assert.Equal(t, []int{5}, s.Slice)

		// field present but empty
		err = mappingByPtr(&s, formSource{"slice": {}}, "form")
		require.NoError(t, err)
		assert.Equal(t, []int{5}, s.Slice)

		// field present with values
		err = mappingByPtr(&s, formSource{"slice": {"1", "2", "3"}}, "form")
		require.NoError(t, err)
		assert.Equal(t, []int{1, 2, 3}, s.Slice)
	})

	t.Run("array with default", func(t *testing.T) {
		var s struct {
			Array [1]int `form:"array,default=5"`
		}

		// field not present
		err := mappingByPtr(&s, formSource{}, "form")
		require.NoError(t, err)
		assert.Equal(t, [1]int{5}, s.Array)

		// field present but empty
		err = mappingByPtr(&s, formSource{"array": {}}, "form")
		require.NoError(t, err)
		assert.Equal(t, [1]int{5}, s.Array)
	})

	t.Run("slice without default", func(t *testing.T) {
		var s struct {
			Slice []int `form:"slice"`
		}

		// field present but empty
		err := mappingByPtr(&s, formSource{"slice": {}}, "form")
		require.NoError(t, err)
		assert.Equal(t, []int(nil), s.Slice)
	})

	t.Run("array without default", func(t *testing.T) {
		var s struct {
			Array [1]int `form:"array"`
		}

		// field present but empty
		err := mappingByPtr(&s, formSource{"array": {}}, "form")
		require.NoError(t, err)
		assert.Equal(t, [1]int{0}, s.Array)
	})

	t.Run("slice with collection format", func(t *testing.T) {
		var s struct {
			SliceMulti []int `form:"slice_multi,default=1;2;3" collection_format:"multi"`
			SliceCsv   []int `form:"slice_csv,default=1;2;3" collection_format:"csv"`
		}

		// field not present
		err := mappingByPtr(&s, formSource{}, "form")
		require.NoError(t, err)
		assert.Equal(t, []int{1, 2, 3}, s.SliceMulti)
		assert.Equal(t, []int{1, 2, 3}, s.SliceCsv)

		// field present but empty
		err = mappingByPtr(&s, formSource{"slice_multi": {}, "slice_csv": {}}, "form")
		require.NoError(t, err)
		assert.Equal(t, []int{1, 2, 3}, s.SliceMulti)
		assert.Equal(t, []int{1, 2, 3}, s.SliceCsv)
	})
}

Subdomains

Frequently Asked Questions

What does TestMappingEmptyValues() do?
TestMappingEmptyValues() is a function in the gin codebase, defined in binding/form_mapping_test.go.
Where is TestMappingEmptyValues() defined?
TestMappingEmptyValues() is defined in binding/form_mapping_test.go at line 1068.

Analyze Your Own Codebase

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

Try Supermodel Free