--- /dev/null
+// Copyright (c) 2012-2016 The Revel Framework Authors, All rights reserved.
+// Revel Framework source code and usage is governed by a MIT style
+// license that can be found in the LICENSE file.
+
+package cache
+
+import (
+ "net"
+ "testing"
+ "time"
+
+ "github.com/revel/config"
+ "github.com/revel/revel"
+)
+
+// These tests require redis server running on localhost:6379 (the default)
+const redisTestServer = "localhost:6379"
+
+var newRedisCache = func(t *testing.T, defaultExpiration time.Duration) Cache {
+ revel.Config = config.NewContext()
+
+ c, err := net.Dial("tcp", redisTestServer)
+ if err == nil {
+ if _, err = c.Write([]byte("flush_all\r\n")); err != nil {
+ t.Errorf("Write failed: %s", err)
+ }
+ _ = c.Close()
+
+ redisCache := NewRedisCache(redisTestServer, "", defaultExpiration)
+ if err = redisCache.Flush(); err != nil {
+ t.Errorf("Flush failed: %s", err)
+ }
+ return redisCache
+ }
+ t.Errorf("couldn't connect to redis on %s", redisTestServer)
+ t.FailNow()
+ panic("")
+}
+
+func TestRedisCache_TypicalGetSet(t *testing.T) {
+ typicalGetSet(t, newRedisCache)
+}
+
+func TestRedisCache_IncrDecr(t *testing.T) {
+ incrDecr(t, newRedisCache)
+}
+
+func TestRedisCache_Expiration(t *testing.T) {
+ expiration(t, newRedisCache)
+}
+
+func TestRedisCache_EmptyCache(t *testing.T) {
+ emptyCache(t, newRedisCache)
+}
+
+func TestRedisCache_Replace(t *testing.T) {
+ testReplace(t, newRedisCache)
+}
+
+func TestRedisCache_Add(t *testing.T) {
+ testAdd(t, newRedisCache)
+}
+
+func TestRedisCache_GetMulti(t *testing.T) {
+ testGetMulti(t, newRedisCache)
+}