...
1
21
22 package oauth2
23
24 import (
25 "testing"
26 "time"
27
28 "github.com/golang/mock/gomock"
29 "github.com/pkg/errors"
30 "github.com/stretchr/testify/assert"
31 "github.com/stretchr/testify/require"
32
33 "github.com/ory/fosite"
34 "github.com/ory/fosite/internal"
35 )
36
37 func TestGetExpiresIn(t *testing.T) {
38 now := time.Now().UTC()
39 r := fosite.NewAccessRequest(&fosite.DefaultSession{
40 ExpiresAt: map[fosite.TokenType]time.Time{
41 fosite.AccessToken: now.Add(time.Hour),
42 },
43 })
44 assert.Equal(t, time.Hour, getExpiresIn(r, fosite.AccessToken, time.Millisecond, now))
45 }
46
47 func TestIssueAccessToken(t *testing.T) {
48 ctrl := gomock.NewController(t)
49 areq := &fosite.AccessRequest{}
50 aresp := &fosite.AccessResponse{Extra: map[string]interface{}{}}
51 accessStrat := internal.NewMockAccessTokenStrategy(ctrl)
52 accessStore := internal.NewMockAccessTokenStorage(ctrl)
53 defer ctrl.Finish()
54
55 helper := HandleHelper{
56 AccessTokenStorage: accessStore,
57 AccessTokenStrategy: accessStrat,
58 AccessTokenLifespan: time.Hour,
59 }
60
61 areq.Session = &fosite.DefaultSession{}
62 for k, c := range []struct {
63 mock func()
64 err error
65 }{
66 {
67 mock: func() {
68 accessStrat.EXPECT().GenerateAccessToken(nil, areq).Return("", "", errors.New(""))
69 },
70 err: errors.New(""),
71 },
72 {
73 mock: func() {
74 accessStrat.EXPECT().GenerateAccessToken(nil, areq).Return("token", "signature", nil)
75 accessStore.EXPECT().CreateAccessTokenSession(nil, "signature", gomock.Eq(areq.Sanitize([]string{}))).Return(errors.New(""))
76 },
77 err: errors.New(""),
78 },
79 {
80 mock: func() {
81 accessStrat.EXPECT().GenerateAccessToken(nil, areq).Return("token", "signature", nil)
82 accessStore.EXPECT().CreateAccessTokenSession(nil, "signature", gomock.Eq(areq.Sanitize([]string{}))).Return(nil)
83 },
84 err: nil,
85 },
86 } {
87 c.mock()
88 err := helper.IssueAccessToken(nil, areq, aresp)
89 require.Equal(t, err == nil, c.err == nil)
90 if c.err != nil {
91 assert.EqualError(t, err, c.err.Error(), "Case %d", k)
92 }
93 }
94 }
95
View as plain text