extract tests into seperate files

This commit is contained in:
bergquist 2019-03-03 04:42:11 +01:00
parent c8ff698d90
commit a60bb83a70
5 changed files with 35 additions and 19 deletions

View File

@ -8,6 +8,7 @@ import (
"github.com/grafana/grafana/pkg/log" "github.com/grafana/grafana/pkg/log"
"github.com/grafana/grafana/pkg/services/sqlstore" "github.com/grafana/grafana/pkg/services/sqlstore"
redis "gopkg.in/redis.v2"
"github.com/grafana/grafana/pkg/registry" "github.com/grafana/grafana/pkg/registry"
) )
@ -35,11 +36,16 @@ type CacheOpts struct {
func createClient(opts CacheOpts, sqlstore *sqlstore.SqlStore) cacheStorage { func createClient(opts CacheOpts, sqlstore *sqlstore.SqlStore) cacheStorage {
if opts.name == "redis" { if opts.name == "redis" {
return newRedisStorage(nil) opt := &redis.Options{
Network: "tcp",
Addr: "localhost:6379",
}
return newRedisStorage(redis.NewClient(opt))
} }
if opts.name == "memcache" { if opts.name == "memcache" {
return newMemcacheStorage("localhost:9090") return newMemcacheStorage("localhost:11211")
} }
// if opts.name == "memory" { // if opts.name == "memory" {

View File

@ -27,18 +27,19 @@ func createTestClient(t *testing.T, name string) cacheStorage {
} }
func TestAllCacheClients(t *testing.T) { func TestAllCacheClients(t *testing.T) {
clients := []string{"database", "redis"} // add redis, memcache, memory //clients := []string{"database", "redis", "memcache"} // add redis, memcache, memory
clients := []string{} // add redis, memcache, memory
for _, v := range clients { for _, v := range clients {
client := createTestClient(t, v) client := createTestClient(t, v)
CanPutGetAndDeleteCachedObjects(t, v, client) CanPutGetAndDeleteCachedObjects(t, client)
CanNotFetchExpiredItems(t, v, client) CanNotFetchExpiredItems(t, client)
CanSetInfiniteCacheExpiration(t, v, client) CanSetInfiniteCacheExpiration(t, client)
} }
} }
func CanPutGetAndDeleteCachedObjects(t *testing.T, name string, client cacheStorage) { func CanPutGetAndDeleteCachedObjects(t *testing.T, client cacheStorage) {
cacheableStruct := CacheableStruct{String: "hej", Int64: 2000} cacheableStruct := CacheableStruct{String: "hej", Int64: 2000}
err := client.Put("key", cacheableStruct, 0) err := client.Put("key", cacheableStruct, 0)
@ -58,7 +59,7 @@ func CanPutGetAndDeleteCachedObjects(t *testing.T, name string, client cacheStor
assert.Equal(t, err, ErrCacheItemNotFound) assert.Equal(t, err, ErrCacheItemNotFound)
} }
func CanNotFetchExpiredItems(t *testing.T, name string, client cacheStorage) { func CanNotFetchExpiredItems(t *testing.T, client cacheStorage) {
cacheableStruct := CacheableStruct{String: "hej", Int64: 2000} cacheableStruct := CacheableStruct{String: "hej", Int64: 2000}
err := client.Put("key", cacheableStruct, time.Second) err := client.Put("key", cacheableStruct, time.Second)
@ -72,7 +73,7 @@ func CanNotFetchExpiredItems(t *testing.T, name string, client cacheStorage) {
assert.Equal(t, err, ErrCacheItemNotFound) assert.Equal(t, err, ErrCacheItemNotFound)
} }
func CanSetInfiniteCacheExpiration(t *testing.T, name string, client cacheStorage) { func CanSetInfiniteCacheExpiration(t *testing.T, client cacheStorage) {
cacheableStruct := CacheableStruct{String: "hej", Int64: 2000} cacheableStruct := CacheableStruct{String: "hej", Int64: 2000}
// insert cache item one day back // insert cache item one day back

View File

@ -24,7 +24,7 @@ func newItem(sid string, data []byte, expire int32) *memcache.Item {
} }
} }
// Set sets value to given key in the cache. // Put sets value to given key in the cache.
func (s *memcacheStorage) Put(key string, val interface{}, expires time.Duration) error { func (s *memcacheStorage) Put(key string, val interface{}, expires time.Duration) error {
item := &cachedItem{Val: val} item := &cachedItem{Val: val}
@ -35,13 +35,17 @@ func (s *memcacheStorage) Put(key string, val interface{}, expires time.Duration
memcacheItem := newItem(key, bytes, int32(expires)) memcacheItem := newItem(key, bytes, int32(expires))
s.c.Add(memcacheItem) return s.c.Add(memcacheItem)
return nil
} }
// Get gets value by given key in the cache. // Get gets value by given key in the cache.
func (s *memcacheStorage) Get(key string) (interface{}, error) { func (s *memcacheStorage) Get(key string) (interface{}, error) {
i, err := s.c.Get(key) i, err := s.c.Get(key)
if err != nil && err.Error() == "memcache: cache miss" {
return nil, ErrCacheItemNotFound
}
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -11,13 +11,7 @@ type redisStorage struct {
} }
func newRedisStorage(c *redis.Client) *redisStorage { func newRedisStorage(c *redis.Client) *redisStorage {
opt := &redis.Options{ return &redisStorage{c: c}
Network: "tcp",
Addr: "localhost:6379",
}
return &redisStorage{
c: redis.NewClient(opt),
}
} }
// Set sets value to given key in session. // Set sets value to given key in session.

View File

@ -1 +1,12 @@
package distcache package distcache
import "testing"
func TestRedisCacheStorage(t *testing.T) {
client := createTestClient(t, "redis")
CanPutGetAndDeleteCachedObjects(t, client)
CanNotFetchExpiredItems(t, client)
CanSetInfiniteCacheExpiration(t, client)
}