Skip to content

Commit bf80114

Browse files
committed
Added real client store tests
1 parent df84c13 commit bf80114

File tree

2 files changed

+124
-32
lines changed

2 files changed

+124
-32
lines changed

pgx_adapter/adapter_test.go

Lines changed: 62 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
5660
func 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

8399
func 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+
}

sql_adapter/adapter_test.go

Lines changed: 62 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,14 @@ func (l *memoryLogger) Printf(format string, v ...interface{}) {
3737
l.args = append(l.args, v)
3838
}
3939

40-
func generateTableName() string {
40+
func generateTokenTableName() string {
4141
return fmt.Sprintf("token_%d", time.Now().UnixNano())
4242
}
4343

44+
func generateClientTableName() string {
45+
return fmt.Sprintf("client_%d", time.Now().UnixNano())
46+
}
47+
4448
func TestNew(t *testing.T) {
4549
l := new(memoryLogger)
4650

@@ -52,15 +56,27 @@ func TestNew(t *testing.T) {
5256
}()
5357

5458
adapter := New(conn)
55-
tableName := generateTableName()
5659

57-
store, err := pg.NewTokenStore(adapter, pg.WithTokenStoreLogger(l), pg.WithTokenStoreTableName(tableName), pg.WithTokenStoreGCInterval(time.Second))
60+
tokenStore, err := pg.NewTokenStore(
61+
adapter,
62+
pg.WithTokenStoreLogger(l),
63+
pg.WithTokenStoreTableName(generateTokenTableName()),
64+
pg.WithTokenStoreGCInterval(time.Second),
65+
)
5866
require.NoError(t, err)
5967
defer func() {
60-
assert.NoError(t, store.Close())
68+
assert.NoError(t, tokenStore.Close())
6169
}()
6270

63-
runStoreTest(t, store, l)
71+
clientStore, err := pg.NewClientStore(
72+
adapter,
73+
pg.WithClientStoreLogger(l),
74+
pg.WithClientStoreTableName(generateClientTableName()),
75+
)
76+
require.NoError(t, err)
77+
78+
runTokenStoreTest(t, tokenStore, l)
79+
runClientStoreTest(t, clientStore)
6480
}
6581

6682
func TestNewX(t *testing.T) {
@@ -74,29 +90,41 @@ func TestNewX(t *testing.T) {
7490
}()
7591

7692
adapter := NewX(sqlx.NewDb(conn, ""))
77-
tableName := generateTableName()
7893

79-
store, err := pg.NewTokenStore(adapter, pg.WithTokenStoreLogger(l), pg.WithTokenStoreTableName(tableName), pg.WithTokenStoreGCInterval(time.Second))
94+
tokenStore, err := pg.NewTokenStore(
95+
adapter,
96+
pg.WithTokenStoreLogger(l),
97+
pg.WithTokenStoreTableName(generateTokenTableName()),
98+
pg.WithTokenStoreGCInterval(time.Second),
99+
)
80100
require.NoError(t, err)
81101
defer func() {
82-
assert.NoError(t, store.Close())
102+
assert.NoError(t, tokenStore.Close())
83103
}()
84104

85-
runStoreTest(t, store, l)
105+
clientStore, err := pg.NewClientStore(
106+
adapter,
107+
pg.WithClientStoreLogger(l),
108+
pg.WithClientStoreTableName(generateClientTableName()),
109+
)
110+
require.NoError(t, err)
111+
112+
runTokenStoreTest(t, tokenStore, l)
113+
runClientStoreTest(t, clientStore)
86114
}
87115

88-
func runStoreTest(t *testing.T, store *pg.TokenStore, l *memoryLogger) {
89-
runStoreCodeTest(t, store)
90-
runStoreAccessTest(t, store)
91-
runStoreRefreshTest(t, store)
116+
func runTokenStoreTest(t *testing.T, store *pg.TokenStore, l *memoryLogger) {
117+
runTokenStoreCodeTest(t, store)
118+
runTokenStoreAccessTest(t, store)
119+
runTokenStoreRefreshTest(t, store)
92120

93121
// sleep for a while just to wait for GC run for sure to ensure there were no errors there
94122
time.Sleep(3 * time.Second)
95123

96124
assert.Equal(t, 0, len(l.formats))
97125
}
98126

99-
func runStoreCodeTest(t *testing.T, store *pg.TokenStore) {
127+
func runTokenStoreCodeTest(t *testing.T, store *pg.TokenStore) {
100128
code := fmt.Sprintf("code %s", time.Now().String())
101129

102130
tokenCode := models.NewToken()
@@ -115,7 +143,7 @@ func runStoreCodeTest(t *testing.T, store *pg.TokenStore) {
115143
assert.Equal(t, pg.ErrNoRows, err)
116144
}
117145

118-
func runStoreAccessTest(t *testing.T, store *pg.TokenStore) {
146+
func runTokenStoreAccessTest(t *testing.T, store *pg.TokenStore) {
119147
code := fmt.Sprintf("access %s", time.Now().String())
120148

121149
tokenCode := models.NewToken()
@@ -134,7 +162,7 @@ func runStoreAccessTest(t *testing.T, store *pg.TokenStore) {
134162
assert.Equal(t, pg.ErrNoRows, err)
135163
}
136164

137-
func runStoreRefreshTest(t *testing.T, store *pg.TokenStore) {
165+
func runTokenStoreRefreshTest(t *testing.T, store *pg.TokenStore) {
138166
code := fmt.Sprintf("refresh %s", time.Now().String())
139167

140168
tokenCode := models.NewToken()
@@ -152,3 +180,21 @@ func runStoreRefreshTest(t *testing.T, store *pg.TokenStore) {
152180
_, err = store.GetByRefresh(code)
153181
assert.Equal(t, pg.ErrNoRows, err)
154182
}
183+
184+
func runClientStoreTest(t *testing.T, store *pg.ClientStore) {
185+
originalClient := &models.Client{
186+
ID: fmt.Sprintf("id %s", time.Now().String()),
187+
Secret: fmt.Sprintf("secret %s", time.Now().String()),
188+
Domain: fmt.Sprintf("domain %s", time.Now().String()),
189+
UserID: fmt.Sprintf("user id %s", time.Now().String()),
190+
}
191+
192+
require.NoError(t, store.Create(originalClient))
193+
194+
client, err := store.GetByID(originalClient.GetID())
195+
require.NoError(t, err)
196+
assert.Equal(t, originalClient.GetID(), client.GetID())
197+
assert.Equal(t, originalClient.GetSecret(), client.GetSecret())
198+
assert.Equal(t, originalClient.GetDomain(), client.GetDomain())
199+
assert.Equal(t, originalClient.GetUserID(), client.GetUserID())
200+
}

0 commit comments

Comments
 (0)