71 lines
1.2 KiB
Go
71 lines
1.2 KiB
Go
//
|
|
// cache_test.go
|
|
// Copyright (C) 2023 tiglog <me@tiglog.com>
|
|
//
|
|
// Distributed under terms of the MIT license.
|
|
//
|
|
|
|
package gcache_test
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"git.hexq.cn/tiglog/golib/gcache"
|
|
"git.hexq.cn/tiglog/golib/gtest"
|
|
"github.com/go-redis/redis/v8"
|
|
)
|
|
|
|
func getRedis() *redis.Client {
|
|
opt, _ := redis.ParseURL(os.Getenv("REDIS_URL"))
|
|
return redis.NewClient(opt)
|
|
}
|
|
|
|
func TestRedis(t *testing.T) {
|
|
rds := getRedis()
|
|
cmd := rds.Ping(context.Background())
|
|
ret, err := cmd.Result()
|
|
gtest.Nil(t, err)
|
|
fmt.Println(ret)
|
|
}
|
|
|
|
func TestCacheNew(t *testing.T) {
|
|
rds := getRedis()
|
|
cm1 := gcache.NewWithRedis(rds)
|
|
cm2 := gcache.NewWithRedis(rds)
|
|
gtest.Equal(t, cm1, cm2)
|
|
}
|
|
func TestRedisAdapter(t *testing.T) {
|
|
rds := getRedis()
|
|
cm := gcache.NewWithRedis(rds)
|
|
key := "foo"
|
|
cm.Del(key)
|
|
r1 := cm.Has(key)
|
|
gtest.False(t, r1)
|
|
|
|
var err error
|
|
val1 := "bar"
|
|
err = cm.Set(key, val1, time.Second)
|
|
gtest.Nil(t, err)
|
|
|
|
var r2 string
|
|
err = cm.Get(key, &r2)
|
|
gtest.Nil(t, err)
|
|
gtest.Equal(t, val1, r2)
|
|
|
|
val2 := 2
|
|
err = cm.Set(key, val2, time.Hour)
|
|
gtest.Nil(t, err)
|
|
var r3 int
|
|
err = cm.Get(key, &r3)
|
|
gtest.Nil(t, err)
|
|
gtest.Equal(t, val2, r3)
|
|
|
|
n, err := cm.Del(key)
|
|
gtest.Nil(t, err)
|
|
gtest.Equal(t, int64(1), n)
|
|
}
|