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  }