github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_role_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_roleValidator_Validate(t *testing.T) {
    12  	type fields struct {
    13  		r contains.InSet
    14  	}
    15  	type args struct {
    16  		email evmail.Address
    17  		in1   []ValidationResult
    18  	}
    19  	tests := []struct {
    20  		name   string
    21  		fields fields
    22  		args   args
    23  		want   ValidationResult
    24  	}{
    25  		{
    26  			name: "email has not role",
    27  			fields: fields{
    28  				r: mockContains{t: t, want: validEmail.Username(), ret: false},
    29  			},
    30  			args: args{
    31  				email: validEmail,
    32  			},
    33  			want: NewResult(true, nil, nil, RoleValidatorName),
    34  		},
    35  		{
    36  			name: "email has role",
    37  			fields: fields{
    38  				r: mockContains{t: t, want: validEmail.Username(), ret: true},
    39  			},
    40  			args: args{
    41  				email: validEmail,
    42  			},
    43  			want: NewResult(false, utils.Errs(RoleError{}), nil, RoleValidatorName),
    44  		},
    45  	}
    46  	for _, tt := range tests {
    47  		t.Run(tt.name, func(t *testing.T) {
    48  			r := NewRoleValidator(tt.fields.r)
    49  			if got := r.Validate(NewInput(tt.args.email), tt.args.in1...); !reflect.DeepEqual(got, tt.want) {
    50  				t.Errorf("Validate() = %v, want %v", got, tt.want)
    51  			}
    52  		})
    53  	}
    54  }
    55  
    56  func TestRoleError_Error(t *testing.T) {
    57  	tests := []struct {
    58  		name string
    59  		want string
    60  	}{
    61  		{
    62  			want: RoleErr,
    63  		},
    64  	}
    65  	for _, tt := range tests {
    66  		t.Run(tt.name, func(t *testing.T) {
    67  			ro := RoleError{}
    68  			if got := ro.Error(); got != tt.want {
    69  				t.Errorf("Error() = %v, want %v", got, tt.want)
    70  			}
    71  		})
    72  	}
    73  }