1
0
mirror of https://github.com/charlienet/go-mixed.git synced 2025-07-18 00:22:41 +08:00
Files
go-mixed/cache/cache_test.go
2022-04-26 17:11:45 +08:00

86 lines
1.4 KiB
Go

package cache
import (
"testing"
"time"
)
func TestNewCache(t *testing.T) {
r := NewRedis(&RedisConfig{})
if err := r.Ping(); err != nil {
t.Fatal(err)
}
c, err := NewCache(
WithDistributdCache(r),
WithPrefix("cache_test"))
if err != nil {
t.Fatal(err)
}
c.Set("abc", "value", time.Minute*10)
}
type SimpleUser struct {
FirstName string
LastName string
}
func TestMem(t *testing.T) {
c, err := NewCache(WithFreeCache(10 * 1024 * 1024))
if err != nil {
t.Fatal(err)
}
key := "u-000"
u := SimpleUser{FirstName: "Radomir", LastName: "Sohlich"}
c.Set(key, u, time.Second)
var u2 SimpleUser
c.Get(key, &u2)
t.Logf("%+v", u2)
}
func TestDistributedCache(t *testing.T) {
key := "key-001"
c := NewRedis(&RedisConfig{Addrs: []string{"192.168.2.222:6379"}, DB: 6, Password: "123456"})
if err := c.Ping(); err != nil {
t.Fatal(err)
}
u := SimpleUser{FirstName: "redis client"}
c.Set(key, u, time.Second)
var u2 SimpleUser
if err := c.Get(key, &u2); err != nil {
t.Fatal("err:", err)
}
t.Logf("%+v", u2)
}
func TestGetFn(t *testing.T) {
c, err := NewCache(WithBigCache(&BigCacheConfig{}))
if err != nil {
t.Fatal(err)
}
key := "u-000"
var u2 SimpleUser
c.GetFn(key, &u2, func() (out any, err error) {
v := &u2
v.FirstName = "abc"
return nil, nil
}, time.Second)
t.Logf("%+v", u2)
}
func BenchmarkMemCache(b *testing.B) {
}
func load() (any, error) {
return nil, nil
}