forked from evergreen-ci/gimlet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuser_service_basic_test.go
77 lines (64 loc) · 2.04 KB
/
user_service_basic_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
package gimlet
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
)
func TestBasicUserManager(t *testing.T) {
const expectedToken = "0:baz:[56 88 246 34 48 172 60 145 95 48 12 102 67 18 198 63]"
assert := assert.New(t)
assert.Implements((*UserManager)(nil), &BasicUserManager{})
u := BasicUserManager{users: []BasicUser{
{
ID: "foo",
Password: "bar",
EmailAddress: "baz",
},
}}
user, err := u.GetUserByToken(context.Background(), expectedToken)
assert.NoError(err)
assert.NotNil(user)
assert.Equal("foo", user.Username())
assert.Equal("baz", user.Email())
user, err = u.GetUserByToken(context.Background(), "")
assert.Error(err)
assert.Nil(user)
token, err := u.CreateUserToken("foo", "bar")
assert.NoError(err)
assert.Equal(token, expectedToken)
assert.Nil(u.GetLoginHandler(""))
assert.Nil(u.GetLoginCallbackHandler())
assert.False(u.IsRedirect())
assert.Nil(u.ReauthorizeUser(&u.users[0]))
assert.NotNil(u.ReauthorizeUser(&BasicUser{ID: "bar"}))
user, err = u.GetUserByID("bar")
assert.Error(err)
assert.Nil(user)
user, err = u.GetUserByID("foo")
assert.NoError(err)
assert.NotNil(user)
assert.Equal("foo", user.Username())
assert.Equal("baz", user.Email())
newUser := &BasicUser{ID: "foo"}
user, err = u.GetOrCreateUser(newUser)
assert.NoError(err)
assert.NotNil(user)
assert.Equal("foo", user.Username())
assert.Equal("baz", user.Email())
newUser = &BasicUser{ID: "new_user", Password: "password", EmailAddress: "[email protected]"}
user, err = u.GetOrCreateUser(newUser)
assert.NoError(err)
assert.NotNil(user)
assert.Equal("new_user", user.Username())
assert.Equal("[email protected]", user.Email())
assert.False(u.isInvalid(user.Username()))
u.setInvalid(user.Username(), true)
assert.True(u.isInvalid(user.Username()))
returnedUser, err := u.GetUserByID(user.Username())
assert.Nil(returnedUser)
assert.Error(err)
u.setInvalid(user.Username(), false)
assert.False(u.isInvalid(user.Username()))
assert.True(u.isInvalid("DNE"))
assert.Error(u.ClearUser(newUser, false))
}