golib/gcache/cache_test.go

52 lines
1.0 KiB
Go

//
// cache_test.go
// Copyright (C) 2023 tiglog <me@tiglog.com>
//
// Distributed under terms of the MIT license.
//
package gcache_test
import (
"os"
"testing"
"time"
"git.hexq.cn/tiglog/golib/gcache"
"git.hexq.cn/tiglog/golib/gtest"
"github.com/redis/go-redis/v9"
)
var sample_name = "golib gcache"
func TestRedisCache(t *testing.T) {
REDIS_URL := os.Getenv("REDIS_URL")
// fmt.Println(REDIS_URL)
redisOpt, err := redis.ParseURL(REDIS_URL)
gtest.Nil(t, err)
var store gcache.ICache = gcache.NewRedisStore(gcache.RCClientOptions(redisOpt))
var sampleData = []byte(sample_name)
err = store.Set("name", sampleData, time.Minute*1)
gtest.Nil(t, err)
r1, err := store.Get("name")
gtest.Nil(t, err)
gtest.Equal(t, string(r1), sample_name)
}
func TestMemoryCache(t *testing.T) {
store := gcache.NewMemoryStore()
var err error
var sampleData = []byte(sample_name)
err = store.Set("name", sampleData, time.Minute*1)
gtest.Nil(t, err)
r1, err := store.Get("name")
gtest.Nil(t, err)
gtest.Equal(t, string(r1), sample_name)
}