2019-09-10 14:22:45 +00:00
|
|
|
package storage
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2021-07-21 18:54:48 +00:00
|
|
|
"github.com/alicebob/miniredis/v2"
|
2019-09-16 15:52:47 +00:00
|
|
|
"github.com/stretchr/testify/require"
|
2019-09-10 14:22:45 +00:00
|
|
|
)
|
|
|
|
|
2019-10-07 16:45:01 +00:00
|
|
|
type mockedRedisStore struct {
|
|
|
|
RedisStore
|
|
|
|
mini *miniredis.Miniredis
|
2019-09-10 14:22:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func prepareRedisMock(t *testing.T) (*miniredis.Miniredis, *RedisStore) {
|
|
|
|
miniRedis, err := miniredis.Run()
|
2019-10-07 16:45:01 +00:00
|
|
|
require.Nil(t, err, "MiniRedis mock creation error")
|
|
|
|
|
2019-09-10 14:22:45 +00:00
|
|
|
_ = miniRedis.Set("foo", "bar")
|
|
|
|
|
|
|
|
dbConfig := DBConfiguration{
|
|
|
|
Type: "redisDB",
|
|
|
|
RedisDBOptions: RedisDBOptions{
|
|
|
|
Addr: miniRedis.Addr(),
|
|
|
|
Password: "",
|
|
|
|
DB: 0,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
newRedisStore, err := NewRedisStore(dbConfig.RedisDBOptions)
|
2019-10-07 16:45:01 +00:00
|
|
|
require.Nil(t, err, "NewRedisStore() error")
|
2019-09-10 14:22:45 +00:00
|
|
|
return miniRedis, newRedisStore
|
|
|
|
}
|
2019-10-07 16:45:01 +00:00
|
|
|
|
|
|
|
func (mrs *mockedRedisStore) Close() error {
|
|
|
|
err := mrs.RedisStore.Close()
|
|
|
|
mrs.mini.Close()
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
func newRedisStoreForTesting(t *testing.T) Store {
|
|
|
|
mock, rs := prepareRedisMock(t)
|
|
|
|
mrs := &mockedRedisStore{RedisStore: *rs, mini: mock}
|
|
|
|
return mrs
|
|
|
|
}
|