(t *testing.T)
| 49 | } |
| 50 | |
| 51 | func 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 | } |
nothing calls this directly
no test coverage detected