diff --git a/redis/redis_test.go b/redis/redis_test.go index eba80a93..7f79c80b 100644 --- a/redis/redis_test.go +++ b/redis/redis_test.go @@ -5,32 +5,115 @@ package redis import ( "os" "testing" + "time" "github.com/gofiber/utils" ) -var storeConfig = ConfigDefault +var testStore *Storage func init() { + testConfig := ConfigDefault + testConfig.Addr = "127.0.0.1:6379" + if v := os.Getenv("REDIS_ADDR"); v != "" { - storeConfig.Addr = v + testConfig.Addr = v } + + testStore = New(testConfig) +} + +func Test_Redis_Set(t *testing.T) { + var ( + store = testStore + key = "john" + val = []byte("doe") + ) + + err := store.Set(key, val, 0) + utils.AssertEqual(t, nil, err) } func Test_Redis_Get(t *testing.T) { - store := New(storeConfig) - - key := "john" - value := []byte("doe") + var ( + store = testStore + key = "john" + val = []byte("doe") + ) result, err := store.Get(key) utils.AssertEqual(t, nil, err) - utils.AssertEqual(t, nil, result) + utils.AssertEqual(t, val, result) - err = store.Set(key, value, 0) + result, err = store.Get("doe") utils.AssertEqual(t, nil, err) - - result, err = store.Get(key) - utils.AssertEqual(t, nil, err) - utils.AssertEqual(t, value, result) + utils.AssertEqual(t, true, len(result) == 0) +} + +func Test_Redis_Set_Expiration(t *testing.T) { + var ( + store = testStore + key = "john" + val = []byte("doe") + exp = 500 * time.Millisecond + ) + + err := store.Set(key, val, exp) + utils.AssertEqual(t, nil, err) + + time.Sleep(1 * time.Second) + +} + +func Test_Redis_Get_Expired(t *testing.T) { + var ( + store = testStore + key = "john" + ) + + result, err := store.Get(key) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, true, len(result) == 0) +} + +func Test_Redis_Delete(t *testing.T) { + var ( + store = testStore + key = "john" + val = []byte("doe") + ) + + err := store.Set(key, val, 0) + utils.AssertEqual(t, nil, err) + + err = store.Delete(key) + utils.AssertEqual(t, nil, err) + + result, err := store.Get(key) + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, true, len(result) == 0) +} + +func Test_Redis_Clear(t *testing.T) { + var ( + store = testStore + val = []byte("doe") + ) + + err := store.Set("john1", val, 0) + utils.AssertEqual(t, nil, err) + + err = store.Set("john2", val, 0) + utils.AssertEqual(t, nil, err) + + err = store.Clear() + utils.AssertEqual(t, nil, err) + + result, err := store.Get("john1") + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, true, len(result) == 0) + + result, err = store.Get("john2") + utils.AssertEqual(t, nil, err) + utils.AssertEqual(t, true, len(result) == 0) }