github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_banwords_username_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/utils" 7 "reflect" 8 "testing" 9 ) 10 11 func Test_banWordsUsernameValidator_Validate(t *testing.T) { 12 type fields struct { 13 d contains.InStrings 14 } 15 type args struct { 16 email evmail.Address 17 } 18 tests := []struct { 19 name string 20 fields fields 21 args args 22 want ValidationResult 23 }{ 24 { 25 name: "username is valid", 26 fields: fields{ 27 d: mockInString{ 28 t: t, 29 want: validEmail.Username(), 30 ret: false, 31 }, 32 }, 33 args: args{ 34 email: validEmail, 35 }, 36 want: NewResult(true, nil, nil, BanWordsUsernameValidatorName), 37 }, 38 { 39 name: "username is banned", 40 fields: fields{ 41 d: mockInString{ 42 t: t, 43 want: validEmail.Username(), 44 ret: true, 45 }, 46 }, 47 args: args{ 48 email: validEmail, 49 }, 50 want: NewResult(false, utils.Errs(BanWordsUsernameError{}), nil, BanWordsUsernameValidatorName), 51 }, 52 } 53 for _, tt := range tests { 54 t.Run(tt.name, func(t *testing.T) { 55 w := NewBanWordsUsername(tt.fields.d) 56 if got := w.Validate(NewInput(tt.args.email)); !reflect.DeepEqual(got, tt.want) { 57 t.Errorf("Validate() = %v, want %v", got, tt.want) 58 } 59 }) 60 } 61 } 62 63 func TestBanWordsUsernameError_Error(t *testing.T) { 64 tests := []struct { 65 name string 66 want string 67 }{ 68 { 69 name: "success", 70 want: BanWordsUsernameErr, 71 }, 72 } 73 for _, tt := range tests { 74 t.Run(tt.name, func(t *testing.T) { 75 ba := BanWordsUsernameError{} 76 if got := ba.Error(); got != tt.want { 77 t.Errorf("Error() = %v, want %v", got, tt.want) 78 } 79 }) 80 } 81 }