-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathuser_test.go
74 lines (60 loc) · 1.83 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
package slackscot_test
import (
"fmt"
"github.com/alexandre-normand/slackscot"
"github.com/alexandre-normand/slackscot/config"
"github.com/slack-go/slack"
"github.com/spf13/viper"
"github.com/stretchr/testify/assert"
"log"
"strings"
"testing"
)
type userInfoFinder struct {
fail bool
}
func (u *userInfoFinder) GetUserInfo(userID string) (user *slack.User, err error) {
if u.fail {
return nil, fmt.Errorf("Error loading user [%s]", userID)
}
return &slack.User{ID: userID, Name: "Daniel Quinn"}, nil
}
func NewCachingUserInfoFinderWithInvalidSize(t *testing.T) {
v := viper.New()
v.Set(config.UserInfoCacheSizeKey, -1)
userInfoFinder := userInfoFinder{}
var logBuilder strings.Builder
logger := log.New(&logBuilder, "", 0)
sLogger := slackscot.NewSLogger(logger, false)
_, err := slackscot.NewCachingUserInfoFinder(v, &userInfoFinder, sLogger)
assert.NotNil(t, err)
}
func NewGetUserWithCacheDisabled(t *testing.T) {
v := viper.New()
v.Set(config.UserInfoCacheSizeKey, 0)
userInfoFinder := userInfoFinder{}
var logBuilder strings.Builder
logger := log.New(&logBuilder, "", 0)
sLogger := slackscot.NewSLogger(logger, false)
uf, err := slackscot.NewCachingUserInfoFinder(v, &userInfoFinder, sLogger)
if assert.Nil(t, err) {
user, err := uf.GetUserInfo("little-blue")
assert.Nil(t, err)
if assert.NotNil(t, user) {
assert.Equal(t, slack.User{ID: "little-blue", Name: "Daniel Quinn"}, *user)
}
}
}
func NewGetUserFailToLoad(t *testing.T) {
v := viper.New()
v.Set(config.UserInfoCacheSizeKey, 1)
userInfoFinder := userInfoFinder{}
var logBuilder strings.Builder
logger := log.New(&logBuilder, "", 0)
sLogger := slackscot.NewSLogger(logger, false)
uf, err := slackscot.NewCachingUserInfoFinder(v, &userInfoFinder, sLogger)
if assert.Nil(t, err) {
_, err := uf.GetUserInfo("little-blue")
assert.NotNil(t, err)
}
}