github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/evsmtp/mx_test.go (about) 1 package evsmtp 2 3 import ( 4 "net" 5 "reflect" 6 "testing" 7 ) 8 9 func TestLookupMX(t *testing.T) { 10 //evtests.FunctionalSkip(t) 11 12 type args struct { 13 domain string 14 } 15 tests := []struct { 16 name string 17 args args 18 want []*net.MX 19 wantErr bool 20 }{ 21 { 22 name: "valid domain", 23 args: args{ 24 domain: "gmail.com", 25 }, 26 want: MXs{ 27 &net.MX{ 28 Host: "gmail-smtp-in.l.google.com.", 29 Pref: 5, 30 }, 31 &net.MX{ 32 Host: "alt1.gmail-smtp-in.l.google.com.", 33 Pref: 10, 34 }, 35 &net.MX{ 36 Host: "alt2.gmail-smtp-in.l.google.com.", 37 Pref: 20, 38 }, 39 &net.MX{ 40 Host: "alt3.gmail-smtp-in.l.google.com.", 41 Pref: 30, 42 }, 43 &net.MX{ 44 Host: "alt4.gmail-smtp-in.l.google.com.", 45 Pref: 40, 46 }, 47 }, 48 wantErr: false, 49 }, 50 { 51 name: "invalid domain", 52 args: args{ 53 domain: "someemailwithcannotexist.com", 54 }, 55 want: nil, 56 wantErr: true, 57 }, 58 } 59 for _, tt := range tests { 60 t.Run(tt.name, func(t *testing.T) { 61 got, err := LookupMX(tt.args.domain) 62 if (err != nil) != tt.wantErr { 63 t.Errorf("LookupMX() error = %v, wantErr %v", err, tt.wantErr) 64 return 65 } 66 if !reflect.DeepEqual(got, tt.want) { 67 t.Errorf("LookupMX() got = %v, want %v", got, tt.want) 68 } 69 }) 70 } 71 }