github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_free_test.go (about) 1 package ev 2 3 import ( 4 "github.com/go-email-validator/go-email-validator/pkg/ev/contains" 5 "github.com/go-email-validator/go-email-validator/pkg/ev/evmail" 6 "github.com/go-email-validator/go-email-validator/pkg/ev/free" 7 "github.com/go-email-validator/go-email-validator/pkg/ev/utils" 8 "reflect" 9 "testing" 10 ) 11 12 func Test_freeValidator_Validate(t *testing.T) { 13 type fields struct { 14 f contains.InSet 15 } 16 type args struct { 17 email evmail.Address 18 } 19 tests := []struct { 20 name string 21 fields fields 22 args args 23 want ValidationResult 24 }{ 25 { 26 name: "email is not free", 27 fields: fields{ 28 f: mockContains{t: t, want: validEmail.Domain(), ret: false}, 29 }, 30 args: args{ 31 email: validEmail, 32 }, 33 want: NewResult(true, nil, nil, FreeValidatorName), 34 }, 35 { 36 name: "email is free", 37 fields: fields{ 38 f: mockContains{t: t, want: validEmail.Domain(), ret: true}, 39 }, 40 args: args{ 41 email: validEmail, 42 }, 43 want: NewResult(false, utils.Errs(FreeError{}), nil, FreeValidatorName), 44 }, 45 } 46 for _, tt := range tests { 47 t.Run(tt.name, func(t *testing.T) { 48 r := NewFreeValidator(tt.fields.f) 49 if got := r.Validate(NewInput(tt.args.email)); !reflect.DeepEqual(got, tt.want) { 50 t.Errorf("Validate() = %v, want %v", got, tt.want) 51 } 52 }) 53 } 54 } 55 56 func TestFreeDefaultValidator(t *testing.T) { 57 tests := []struct { 58 name string 59 want Validator 60 }{ 61 { 62 name: "success", 63 want: NewFreeValidator(free.NewWillWhiteSetFree()), 64 }, 65 } 66 for _, tt := range tests { 67 t.Run(tt.name, func(t *testing.T) { 68 if got := FreeDefaultValidator(); !reflect.DeepEqual(got, tt.want) { 69 t.Errorf("FreeDefaultValidator() = %v, want %v", got, tt.want) 70 } 71 }) 72 } 73 } 74 75 func TestFreeError_Error(t *testing.T) { 76 tests := []struct { 77 name string 78 want string 79 }{ 80 { 81 want: FreeErr, 82 }, 83 } 84 for _, tt := range tests { 85 t.Run(tt.name, func(t *testing.T) { 86 fr := FreeError{} 87 if got := fr.Error(); got != tt.want { 88 t.Errorf("Error() = %v, want %v", got, tt.want) 89 } 90 }) 91 } 92 }