-
Notifications
You must be signed in to change notification settings - Fork 71
/
Copy pathuser_test.go
94 lines (85 loc) · 2.29 KB
/
user_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package diygoapi
import (
"testing"
"time"
qt "github.com/frankban/quicktest"
"github.com/google/go-cmp/cmp"
"github.com/gilcrest/diygoapi/errs"
"github.com/gilcrest/diygoapi/secure"
"github.com/gilcrest/diygoapi/uuid"
)
func TestUser_Validate(t *testing.T) {
c := qt.New(t)
type fields struct {
Email string
LastName string
FirstName string
FullName string
HostedDomain string
PictureURL string
ProfileLink string
}
otto := fields{
Email: "otto.maddox@helpinghandacceptanceco.com",
LastName: "Maddox",
FirstName: "Otto",
FullName: "Otto Maddox",
HostedDomain: "",
PictureURL: "",
ProfileLink: "",
}
noLastName := fields{
Email: "otto.maddox@helpinghandacceptanceco.com",
LastName: "",
FirstName: "Otto",
FullName: "Otto Maddox",
HostedDomain: "",
PictureURL: "",
ProfileLink: "",
}
noFirstName := fields{
Email: "otto.maddox@helpinghandacceptanceco.com",
LastName: "Maddox",
FirstName: "",
FullName: "Otto Maddox",
HostedDomain: "",
PictureURL: "",
ProfileLink: "",
}
tests := []struct {
name string
fields fields
wantErr error
}{
{"typical", otto, nil},
{"no last name", noLastName, errs.E(errs.Validation, "User LastName cannot be empty")},
{"no first name", noFirstName, errs.E(errs.Validation, "User FirstName cannot be empty")},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
user := User{
ID: uuid.New(),
ExternalID: secure.NewID(),
NamePrefix: "",
FirstName: tt.fields.FirstName,
MiddleName: "",
LastName: tt.fields.LastName,
FullName: tt.fields.FullName,
NameSuffix: "",
Nickname: "",
Email: tt.fields.Email,
CompanyName: "",
CompanyDepartment: "",
JobTitle: "",
BirthDate: time.Date(2008, 1, 17, 0, 0, 0, 0, time.UTC),
LanguagePreferences: nil,
HostedDomain: tt.fields.HostedDomain,
PictureURL: tt.fields.PictureURL,
ProfileLink: tt.fields.ProfileLink,
Source: "",
}
err := user.Validate()
c.Assert(err, qt.CmpEquals(cmp.Comparer(errs.Match)), tt.wantErr)
})
}
}