github.com/jxgolibs/go-oauth2-server@v1.0.1/session/service_test.go (about) 1 package session_test 2 3 import ( 4 "github.com/RichardKnop/go-oauth2-server/session" 5 "github.com/stretchr/testify/assert" 6 ) 7 8 func (suite *SessionTestSuite) TestService() { 9 var ( 10 userSession *session.UserSession 11 err error 12 ) 13 14 // No public methods should work before StartSession has been called 15 userSession, err = suite.service.GetUserSession() 16 assert.Nil(suite.T(), userSession) 17 if assert.NotNil(suite.T(), err) { 18 assert.Equal(suite.T(), session.ErrSessonNotStarted, err) 19 } 20 21 // Call the StartSession method so internal session object gets set 22 err = suite.service.StartSession() 23 assert.Nil(suite.T(), err) 24 25 // Let's clear the user session first 26 err = suite.service.ClearUserSession() 27 assert.Nil(suite.T(), err) 28 29 // Since the user session has not been set yet, this should return error 30 userSession, err = suite.service.GetUserSession() 31 assert.Nil(suite.T(), userSession) 32 if assert.NotNil(suite.T(), err) { 33 assert.Equal(suite.T(), "User session type assertion error", err.Error()) 34 } 35 36 // Let's set the user session now 37 suite.service.SetUserSession(&session.UserSession{ 38 ClientID: "test_client", 39 Username: "test@username", 40 AccessToken: "test_access_token", 41 RefreshToken: "test_refresh_token", 42 }) 43 44 // User session is set, this should return it 45 userSession, err = suite.service.GetUserSession() 46 assert.Nil(suite.T(), err) 47 if assert.NotNil(suite.T(), userSession) { 48 assert.Equal(suite.T(), "test_client", userSession.ClientID) 49 assert.Equal(suite.T(), "test@username", userSession.Username) 50 assert.Equal(suite.T(), "test_access_token", userSession.AccessToken) 51 assert.Equal(suite.T(), "test_refresh_token", userSession.RefreshToken) 52 } 53 54 // Let's clear the user session now 55 err = suite.service.ClearUserSession() 56 assert.Nil(suite.T(), err) 57 58 // Since the user session has been cleared, this should return error 59 userSession, err = suite.service.GetUserSession() 60 assert.Nil(suite.T(), userSession) 61 if assert.NotNil(suite.T(), err) { 62 assert.Equal(suite.T(), "User session type assertion error", err.Error()) 63 } 64 }