github.com/RichardKnop/go-oauth2-server@v1.0.5-0.20201019163316-d02a401490d0/models/oauth_test.go (about) 1 package models_test 2 3 import ( 4 "database/sql/driver" 5 "testing" 6 7 "github.com/RichardKnop/go-oauth2-server/models" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestNewAccessToken(t *testing.T) { 12 var ( 13 client = &models.OauthClient{MyGormModel: models.MyGormModel{ID: "1"}} 14 user = &models.OauthUser{MyGormModel: models.MyGormModel{ID: "2"}} 15 accessToken *models.OauthAccessToken 16 v driver.Value 17 err error 18 ) 19 20 // When user object is nil 21 accessToken = models.NewOauthAccessToken( 22 client, // client 23 nil, // user 24 3600, // expires in 25 "scope doesn't matter", // scope 26 ) 27 28 // accessToken.ClientID.Valid should be true 29 assert.True(t, accessToken.ClientID.Valid) 30 31 // accessToken.ClientID.Value() should return the object id, in this case string(1) 32 v, err = accessToken.ClientID.Value() 33 assert.Nil(t, err) 34 assert.Equal(t, string("1"), v) 35 36 // accessToken.UserID.Valid should be false 37 assert.False(t, accessToken.UserID.Valid) 38 39 // accessToken.UserID.Value() should return nil 40 v, err = accessToken.UserID.Value() 41 assert.Nil(t, err) 42 assert.Nil(t, v) 43 44 // When user object is not nil 45 accessToken = models.NewOauthAccessToken( 46 client, // client 47 user, // user 48 3600, // expires in 49 "scope doesn't matter", // scope 50 ) 51 52 // accessToken.ClientID.Valid should be true 53 assert.True(t, accessToken.ClientID.Valid) 54 55 // accessToken.ClientID.Value() should return the object id, in this case string(1) 56 v, err = accessToken.ClientID.Value() 57 assert.Nil(t, err) 58 assert.Equal(t, string("1"), v) 59 60 // accessToken.UserID.Valid should be true 61 assert.True(t, accessToken.UserID.Valid) 62 63 // accessToken.UserID.Value() should return the object id, in this case string(2) 64 v, err = accessToken.UserID.Value() 65 assert.Nil(t, err) 66 assert.Equal(t, string("2"), v) 67 } 68 69 func TestNewRefreshToken(t *testing.T) { 70 var ( 71 client = &models.OauthClient{MyGormModel: models.MyGormModel{ID: "1"}} 72 user = &models.OauthUser{MyGormModel: models.MyGormModel{ID: "2"}} 73 refreshToken *models.OauthRefreshToken 74 v driver.Value 75 err error 76 ) 77 78 // When user object is nil 79 refreshToken = models.NewOauthRefreshToken( 80 client, // client 81 nil, // user 82 1209600, // expires in 83 "scope doesn't matter", // scope 84 ) 85 86 // refreshToken.ClientID.Valid should be true 87 assert.True(t, refreshToken.ClientID.Valid) 88 89 // refreshToken.ClientID.Value() should return the object id, in this case string(1) 90 v, err = refreshToken.ClientID.Value() 91 assert.Nil(t, err) 92 assert.Equal(t, string("1"), v) 93 94 // refreshToken.UserID.Valid should be false 95 assert.False(t, refreshToken.UserID.Valid) 96 97 // refreshToken.UserID.Value() should return nil 98 v, err = refreshToken.UserID.Value() 99 assert.Nil(t, err) 100 assert.Nil(t, v) 101 102 // When user object is not nil 103 refreshToken = models.NewOauthRefreshToken( 104 client, // client 105 user, // user 106 1209600, // expires in 107 "scope doesn't matter", // scope 108 ) 109 110 // accessToken.ClientID.Valid should be true 111 assert.True(t, refreshToken.ClientID.Valid) 112 113 // accessToken.ClientID.Value() should return the object id, in this case string(1) 114 v, err = refreshToken.ClientID.Value() 115 assert.Nil(t, err) 116 assert.Equal(t, string("1"), v) 117 118 // refreshToken.UserID.Valid should be true 119 assert.True(t, refreshToken.UserID.Valid) 120 121 // refreshToken.UserID.Value() should return the object id, in this case string(2) 122 v, err = refreshToken.UserID.Value() 123 assert.Nil(t, err) 124 assert.Equal(t, string("2"), v) 125 } 126 127 func TestNewAuthorizationCode(t *testing.T) { 128 var ( 129 client = &models.OauthClient{MyGormModel: models.MyGormModel{ID: "1"}} 130 user = &models.OauthUser{MyGormModel: models.MyGormModel{ID: "2"}} 131 authorizationCode *models.OauthAuthorizationCode 132 v driver.Value 133 err error 134 ) 135 136 // When user object is not nil 137 authorizationCode = models.NewOauthAuthorizationCode( 138 client, // client 139 user, // user 140 3600, // expires in 141 "redirect URI doesn't matter", // redirect URI 142 "scope doesn't matter", // scope 143 ) 144 145 // authorizationCode.ClientID.Valid should be true 146 assert.True(t, authorizationCode.ClientID.Valid) 147 148 // authorizationCode.ClientID.Value() should return the object id, in this case string(1) 149 v, err = authorizationCode.ClientID.Value() 150 assert.Nil(t, err) 151 assert.Equal(t, string("1"), v) 152 153 // authorizationCode.UserID.Valid should be true 154 assert.True(t, authorizationCode.UserID.Valid) 155 156 // authorizationCode.UserID.Value() should return the object id, in this case string(2) 157 v, err = authorizationCode.UserID.Value() 158 assert.Nil(t, err) 159 assert.Equal(t, string("2"), v) 160 }