MCPcopy
hub / github.com/gin-gonic/gin / TestDefaultValidator

Function TestDefaultValidator

binding/default_validator_test.go:51–90  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

49}
50
51func TestDefaultValidator(t *testing.T) {
52 type exampleStruct struct {
53 A string `binding:"max=8"`
54 B int `binding:"gt=0"`
55 }
56 tests := []struct {
57 name string
58 v *defaultValidator
59 obj any
60 wantErr bool
61 }{
62 {"validate nil obj", &defaultValidator{}, nil, false},
63 {"validate int obj", &defaultValidator{}, 3, false},
64 {"validate struct failed-1", &defaultValidator{}, exampleStruct{A: "123456789", B: 1}, true},
65 {"validate struct failed-2", &defaultValidator{}, exampleStruct{A: "12345678", B: 0}, true},
66 {"validate struct passed", &defaultValidator{}, exampleStruct{A: "12345678", B: 1}, false},
67 {"validate *struct failed-1", &defaultValidator{}, &exampleStruct{A: "123456789", B: 1}, true},
68 {"validate *struct failed-2", &defaultValidator{}, &exampleStruct{A: "12345678", B: 0}, true},
69 {"validate *struct passed", &defaultValidator{}, &exampleStruct{A: "12345678", B: 1}, false},
70 {"validate []struct failed-1", &defaultValidator{}, []exampleStruct{{A: "123456789", B: 1}}, true},
71 {"validate []struct failed-2", &defaultValidator{}, []exampleStruct{{A: "12345678", B: 0}}, true},
72 {"validate []struct passed", &defaultValidator{}, []exampleStruct{{A: "12345678", B: 1}}, false},
73 {"validate []*struct failed-1", &defaultValidator{}, []*exampleStruct{{A: "123456789", B: 1}}, true},
74 {"validate []*struct failed-2", &defaultValidator{}, []*exampleStruct{{A: "12345678", B: 0}}, true},
75 {"validate []*struct passed", &defaultValidator{}, []*exampleStruct{{A: "12345678", B: 1}}, false},
76 {"validate *[]struct failed-1", &defaultValidator{}, &[]exampleStruct{{A: "123456789", B: 1}}, true},
77 {"validate *[]struct failed-2", &defaultValidator{}, &[]exampleStruct{{A: "12345678", B: 0}}, true},
78 {"validate *[]struct passed", &defaultValidator{}, &[]exampleStruct{{A: "12345678", B: 1}}, false},
79 {"validate *[]*struct failed-1", &defaultValidator{}, &[]*exampleStruct{{A: "123456789", B: 1}}, true},
80 {"validate *[]*struct failed-2", &defaultValidator{}, &[]*exampleStruct{{A: "12345678", B: 0}}, true},
81 {"validate *[]*struct passed", &defaultValidator{}, &[]*exampleStruct{{A: "12345678", B: 1}}, false},
82 }
83 for _, tt := range tests {
84 t.Run(tt.name, func(t *testing.T) {
85 if err := tt.v.ValidateStruct(tt.obj); (err != nil) != tt.wantErr {
86 t.Errorf("defaultValidator.Validate() error = %v, wantErr %v", err, tt.wantErr)
87 }
88 })
89 }
90}

Callers

nothing calls this directly

Calls 2

RunMethod · 0.80
ValidateStructMethod · 0.65

Tested by

no test coverage detected