github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_input_test.go (about) 1 package ev 2 3 import ( 4 "github.com/go-email-validator/go-email-validator/pkg/ev/evmail" 5 mockevmail "github.com/go-email-validator/go-email-validator/test/mock/ev/evmail" 6 "reflect" 7 "testing" 8 ) 9 10 func TestNewInput(t *testing.T) { 11 type args struct { 12 email evmail.Address 13 kvOptions []KVOption 14 } 15 16 kvOptions := []KVOption{ 17 {Name: OtherValidator, Option: 1}, 18 {Name: OtherValidator, Option: 3}, 19 {Name: SMTPValidatorName, Option: 2}, 20 } 21 22 tests := []struct { 23 name string 24 args args 25 want Input 26 }{ 27 { 28 name: "success", 29 args: args{ 30 email: mockevmail.GetValidTestEmail(), 31 kvOptions: kvOptions, 32 }, 33 want: &input{ 34 email: mockevmail.GetValidTestEmail(), 35 options: map[ValidatorName]interface{}{ 36 OtherValidator: 3, 37 SMTPValidatorName: 2, 38 }, 39 }, 40 }, 41 } 42 for _, tt := range tests { 43 t.Run(tt.name, func(t *testing.T) { 44 opts := make([]KVOption, 0) 45 46 for _, opt := range tt.args.kvOptions { 47 opts = append(opts, NewKVOption(opt.Name, opt.Option)) 48 } 49 50 if got := NewInput(tt.args.email, opts...); !reflect.DeepEqual(got, tt.want) { 51 t.Errorf("NewInput() = %v, want %v", got, tt.want) 52 } 53 }) 54 } 55 }