MCPcopy
hub / github.com/go-playground/validator / TestArrayDiveValidation

Function TestArrayDiveValidation

validator_test.go:3594–3810  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3592}
3593
3594func TestArrayDiveValidation(t *testing.T) {
3595 validate := New()
3596
3597 arr := []string{"ok", "", "ok"}
3598
3599 errs := validate.Var(arr, "len=3,dive,required")
3600 NotEqual(t, errs, nil)
3601 Equal(t, len(errs.(ValidationErrors)), 1)
3602 AssertError(t, errs, "[1]", "[1]", "[1]", "[1]", "required")
3603
3604 errs = validate.Var(arr, "len=2,dive,required")
3605 NotEqual(t, errs, nil)
3606 Equal(t, len(errs.(ValidationErrors)), 1)
3607 AssertError(t, errs, "", "", "", "", "len")
3608
3609 type BadDive struct {
3610 Name string `validate:"dive"`
3611 }
3612
3613 bd := &BadDive{
3614 Name: "TEST",
3615 }
3616
3617 PanicMatches(t, func() { _ = validate.Struct(bd) }, "dive error! can't dive on a non slice or map")
3618
3619 type Test struct {
3620 Errs []string `validate:"gt=0,dive,required"`
3621 }
3622
3623 test := &Test{
3624 Errs: []string{"ok", "", "ok"},
3625 }
3626
3627 errs = validate.Struct(test)
3628 NotEqual(t, errs, nil)
3629 Equal(t, len(errs.(ValidationErrors)), 1)
3630 AssertError(t, errs, "Test.Errs[1]", "Test.Errs[1]", "Errs[1]", "Errs[1]", "required")
3631
3632 test = &Test{
3633 Errs: []string{"ok", "ok", ""},
3634 }
3635
3636 errs = validate.Struct(test)
3637 NotEqual(t, errs, nil)
3638 Equal(t, len(errs.(ValidationErrors)), 1)
3639 AssertError(t, errs, "Test.Errs[2]", "Test.Errs[2]", "Errs[2]", "Errs[2]", "required")
3640
3641 type TestMultiDimensional struct {
3642 Errs [][]string `validate:"gt=0,dive,dive,required"`
3643 }
3644
3645 var errArray [][]string
3646
3647 errArray = append(errArray, []string{"ok", "", ""})
3648 errArray = append(errArray, []string{"ok", "", ""})
3649
3650 tm := &TestMultiDimensional{
3651 Errs: errArray,

Callers

nothing calls this directly

Calls 5

NewFunction · 0.85
AssertErrorFunction · 0.85
VarMethod · 0.80
StructMethod · 0.80
ErrorMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…