neoneo-go/pkg/core/storage/redis_store_test.go
Roman Khimov e111892653 storage: redo DB testing
Make generic tests for all Store implementations, deduplicate tests. Implement
Delete() tests, test Seek() better, add LevelDB tests (finally!).
2019-10-15 12:56:25 +03:00

44 lines
945 B
Go

package storage
import (
"testing"
"github.com/alicebob/miniredis"
"github.com/stretchr/testify/require"
)
type mockedRedisStore struct {
RedisStore
mini *miniredis.Miniredis
}
func prepareRedisMock(t *testing.T) (*miniredis.Miniredis, *RedisStore) {
miniRedis, err := miniredis.Run()
require.Nil(t, err, "MiniRedis mock creation error")
_ = miniRedis.Set("foo", "bar")
dbConfig := DBConfiguration{
Type: "redisDB",
RedisDBOptions: RedisDBOptions{
Addr: miniRedis.Addr(),
Password: "",
DB: 0,
},
}
newRedisStore, err := NewRedisStore(dbConfig.RedisDBOptions)
require.Nil(t, err, "NewRedisStore() error")
return miniRedis, newRedisStore
}
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
}