@@ -49,10 +49,14 @@ func (l *memoryLogger) Log(level pgx.LogLevel, msg string, data map[string]inter
4949 }{level : level , msg : msg , data : data })
5050}
5151
52- func generateTableName () string {
52+ func generateTokenTableName () string {
5353 return fmt .Sprintf ("token_%d" , time .Now ().UnixNano ())
5454}
5555
56+ func generateClientTableName () string {
57+ return fmt .Sprintf ("client_%d" , time .Now ().UnixNano ())
58+ }
59+
5660func TestNewConn (t * testing.T ) {
5761 l := new (memoryLogger )
5862
@@ -69,15 +73,27 @@ func TestNewConn(t *testing.T) {
6973 }()
7074
7175 adapter := NewConn (pgxConn )
72- tableName := generateTableName ()
7376
74- store , err := pg .NewTokenStore (adapter , pg .WithTokenStoreLogger (l ), pg .WithTokenStoreTableName (tableName ), pg .WithTokenStoreGCInterval (time .Second ))
77+ tokenStore , err := pg .NewTokenStore (
78+ adapter ,
79+ pg .WithTokenStoreLogger (l ),
80+ pg .WithTokenStoreTableName (generateTokenTableName ()),
81+ pg .WithTokenStoreGCInterval (time .Second ),
82+ )
7583 require .NoError (t , err )
7684 defer func () {
77- assert .NoError (t , store .Close ())
85+ assert .NoError (t , tokenStore .Close ())
7886 }()
7987
80- runStoreTest (t , store , l )
88+ clientStore , err := pg .NewClientStore (
89+ adapter ,
90+ pg .WithClientStoreLogger (l ),
91+ pg .WithClientStoreTableName (generateClientTableName ()),
92+ )
93+ require .NoError (t , err )
94+
95+ runTokenStoreTest (t , tokenStore , l )
96+ runClientStoreTest (t , clientStore )
8197}
8298
8399func TestNewConnPool (t * testing.T ) {
@@ -96,29 +112,41 @@ func TestNewConnPool(t *testing.T) {
96112 defer pgXConnPool .Close ()
97113
98114 adapter := NewConnPool (pgXConnPool )
99- tableName := generateTableName ()
100115
101- store , err := pg .NewTokenStore (adapter , pg .WithTokenStoreLogger (l ), pg .WithTokenStoreTableName (tableName ), pg .WithTokenStoreGCInterval (time .Second ))
116+ tokenStore , err := pg .NewTokenStore (
117+ adapter ,
118+ pg .WithTokenStoreLogger (l ),
119+ pg .WithTokenStoreTableName (generateTokenTableName ()),
120+ pg .WithTokenStoreGCInterval (time .Second ),
121+ )
102122 require .NoError (t , err )
103123 defer func () {
104- assert .NoError (t , store .Close ())
124+ assert .NoError (t , tokenStore .Close ())
105125 }()
106126
107- runStoreTest (t , store , l )
127+ clientStore , err := pg .NewClientStore (
128+ adapter ,
129+ pg .WithClientStoreLogger (l ),
130+ pg .WithClientStoreTableName (generateClientTableName ()),
131+ )
132+ require .NoError (t , err )
133+
134+ runTokenStoreTest (t , tokenStore , l )
135+ runClientStoreTest (t , clientStore )
108136}
109137
110- func runStoreTest (t * testing.T , store * pg.TokenStore , l * memoryLogger ) {
111- runStoreCodeTest (t , store )
112- runStoreAccessTest (t , store )
113- runStoreRefreshTest (t , store )
138+ func runTokenStoreTest (t * testing.T , store * pg.TokenStore , l * memoryLogger ) {
139+ runTokenStoreCodeTest (t , store )
140+ runTokenStoreAccessTest (t , store )
141+ runTokenStoreRefreshTest (t , store )
114142
115143 // sleep for a while just to wait for GC run for sure to ensure there were no errors there
116144 time .Sleep (3 * time .Second )
117145
118146 assert .Equal (t , 0 , len (l .formats ))
119147}
120148
121- func runStoreCodeTest (t * testing.T , store * pg.TokenStore ) {
149+ func runTokenStoreCodeTest (t * testing.T , store * pg.TokenStore ) {
122150 code := fmt .Sprintf ("code %s" , time .Now ().String ())
123151
124152 tokenCode := models .NewToken ()
@@ -137,7 +165,7 @@ func runStoreCodeTest(t *testing.T, store *pg.TokenStore) {
137165 assert .Equal (t , pg .ErrNoRows , err )
138166}
139167
140- func runStoreAccessTest (t * testing.T , store * pg.TokenStore ) {
168+ func runTokenStoreAccessTest (t * testing.T , store * pg.TokenStore ) {
141169 code := fmt .Sprintf ("access %s" , time .Now ().String ())
142170
143171 tokenCode := models .NewToken ()
@@ -156,7 +184,7 @@ func runStoreAccessTest(t *testing.T, store *pg.TokenStore) {
156184 assert .Equal (t , pg .ErrNoRows , err )
157185}
158186
159- func runStoreRefreshTest (t * testing.T , store * pg.TokenStore ) {
187+ func runTokenStoreRefreshTest (t * testing.T , store * pg.TokenStore ) {
160188 code := fmt .Sprintf ("refresh %s" , time .Now ().String ())
161189
162190 tokenCode := models .NewToken ()
@@ -174,3 +202,21 @@ func runStoreRefreshTest(t *testing.T, store *pg.TokenStore) {
174202 _ , err = store .GetByRefresh (code )
175203 assert .Equal (t , pg .ErrNoRows , err )
176204}
205+
206+ func runClientStoreTest (t * testing.T , store * pg.ClientStore ) {
207+ originalClient := & models.Client {
208+ ID : fmt .Sprintf ("id %s" , time .Now ().String ()),
209+ Secret : fmt .Sprintf ("secret %s" , time .Now ().String ()),
210+ Domain : fmt .Sprintf ("domain %s" , time .Now ().String ()),
211+ UserID : fmt .Sprintf ("user id %s" , time .Now ().String ()),
212+ }
213+
214+ require .NoError (t , store .Create (originalClient ))
215+
216+ client , err := store .GetByID (originalClient .GetID ())
217+ require .NoError (t , err )
218+ assert .Equal (t , originalClient .GetID (), client .GetID ())
219+ assert .Equal (t , originalClient .GetSecret (), client .GetSecret ())
220+ assert .Equal (t , originalClient .GetDomain (), client .GetDomain ())
221+ assert .Equal (t , originalClient .GetUserID (), client .GetUserID ())
222+ }
0 commit comments