123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440 |
- package test
- import (
- "git.sxidc.com/go-framework/baize/framework/core/infrastructure"
- "git.sxidc.com/go-framework/baize/framework/core/infrastructure/cache"
- "git.sxidc.com/go-framework/baize/framework/core/infrastructure/cache/local"
- "git.sxidc.com/go-framework/baize/framework/core/infrastructure/cache/redis"
- "git.sxidc.com/go-tools/utils/strutils"
- "github.com/pkg/errors"
- "testing"
- "time"
- )
- func TestLocalCache(t *testing.T) {
- localhostCache := local.New("test")
- testLocalCache(t, localhostCache)
- }
- func TestRedisCache(t *testing.T) {
- redisCache, err := redis.New("localhost:6379", "", "mtyzxhc", 1, "test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- defer func() {
- err := redis.Destroy(redisCache)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- }()
- testRedisCache(t, redisCache)
- }
- func TestCacheInfrastructure(t *testing.T) {
- i := infrastructure.NewInfrastructure(infrastructure.Config{
- CacheConfig: infrastructure.CacheConfig{
- Namespace: "test",
- Redis: &infrastructure.RedisConfig{
- Address: "localhost:6379",
- UserName: "",
- Password: "mtyzxhc",
- DB: 1,
- },
- },
- })
- defer infrastructure.DestroyInfrastructure(i)
- testCache(t, i.LocalCache())
- testCache(t, i.RedisCache())
- }
- func TestCacheExpire(t *testing.T) {
- i := infrastructure.NewInfrastructure(infrastructure.Config{
- CacheConfig: infrastructure.CacheConfig{
- Namespace: "test",
- Redis: &infrastructure.RedisConfig{
- Address: "localhost:6379",
- UserName: "",
- Password: "mtyzxhc",
- DB: 1,
- },
- },
- })
- defer infrastructure.DestroyInfrastructure(i)
- testCacheExpire(t, i.LocalCache())
- testCacheExpire(t, i.RedisCache())
- }
- func testLocalCache(t *testing.T, localCache *local.Cache) {
- err := localCache.Set("test1", "test1-value", 0)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- test1Value, err := localCache.Get("test1")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if test1Value != "test1-value" {
- t.Fatalf("Value Error: cache %v\n", test1Value)
- }
- err = localCache.Set("test2", "test2-value", 0)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- multiValues, err := localCache.GetMulti([]string{"test1", "test2"})
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(multiValues) != 2 {
- t.Fatalf("Value Error: cache %v\n", multiValues)
- }
- if multiValues["test1"] != "test1-value" || multiValues["test2"] != "test2-value" {
- t.Fatalf("Value Error: cache %v\n", multiValues)
- }
- allValues, err := localCache.GetAll()
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(allValues) != 2 {
- t.Fatalf("Value Error: cache %v\n", allValues)
- }
- if allValues["test1"] != "test1-value" || allValues["test2"] != "test2-value" {
- t.Fatalf("Value Error: cache %v\n", allValues)
- }
- err = localCache.Delete("test2")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- test2Value, err := localCache.Get("test2")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(test2Value) {
- t.Fatalf("Delete Value Error: cache %v\n", test2Value)
- }
- err = localCache.Clear()
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- allValues, err = localCache.GetAll()
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(allValues) != 0 {
- t.Fatalf("Clear Value Error: cache %v\n", allValues)
- }
- err = localCache.Set("test", "test-value", 1)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- time.Sleep(1500 * time.Millisecond)
- testValue, err := localCache.Get("test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(testValue) {
- t.Fatalf("Value Expire Error: cache %v\n", testValue)
- }
- err = localCache.Clear()
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- }
- func testRedisCache(t *testing.T, redisCache *redis.Cache) {
- err := redisCache.Set("test1", "test1-value", 0)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- test1Value, err := redisCache.Get("test1")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if test1Value != "test1-value" {
- t.Fatalf("Value Error: cache %v\n", test1Value)
- }
- err = redisCache.Set("test2", "test2-value", 0)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- multiValues, err := redisCache.GetMulti([]string{"test1", "test2"})
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(multiValues) != 2 {
- t.Fatalf("Value Error: cache %v\n", multiValues)
- }
- if multiValues["test1"] != "test1-value" || multiValues["test2"] != "test2-value" {
- t.Fatalf("Value Error: cache %v\n", multiValues)
- }
- allValues, err := redisCache.GetAll()
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(allValues) != 2 {
- t.Fatalf("Value Error: cache %v\n", allValues)
- }
- if allValues["test1"] != "test1-value" || allValues["test2"] != "test2-value" {
- t.Fatalf("Value Error: cache %v\n", allValues)
- }
- err = redisCache.Delete("test2")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- test2Value, err := redisCache.Get("test2")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(test2Value) {
- t.Fatalf("Delete Value Error: cache %v\n", test2Value)
- }
- err = redisCache.Clear()
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- allValues, err = redisCache.GetAll()
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(allValues) != 0 {
- t.Fatalf("Clear Value Error: cache %v\n", allValues)
- }
- err = redisCache.Set("test", "test-value", 1)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- time.Sleep(1500 * time.Millisecond)
- testValue, err := redisCache.Get("test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(testValue) {
- t.Fatalf("Value Expire Error: cache %v\n", testValue)
- }
- err = redisCache.Clear()
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- }
- func testCache(t *testing.T, cacheInterface cache.Cache) {
- err := cache.Set(cacheInterface, "test1", "test1-value", 0)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- test1Value, err := cache.Get[string](cacheInterface, "test1")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if test1Value != "test1-value" {
- t.Fatalf("Value Error: cache %v\n", test1Value)
- }
- err = cache.Set(cacheInterface, "test2", "test2-value", 0)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- multiValues, err := cache.GetMulti(cacheInterface, []string{"test1", "test2"})
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(multiValues) != 2 {
- t.Fatalf("Value Error: cache %v\n", multiValues)
- }
- if multiValues["test1"] != "test1-value" || multiValues["test2"] != "test2-value" {
- t.Fatalf("Value Error: cache %v\n", multiValues)
- }
- allValues, err := cache.GetAll(cacheInterface)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(allValues) != 2 {
- t.Fatalf("Value Error: cache %v\n", allValues)
- }
- if allValues["test1"] != "test1-value" || allValues["test2"] != "test2-value" {
- t.Fatalf("Value Error: cache %v\n", allValues)
- }
- err = cache.Delete(cacheInterface, "test2")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- test2Value, err := cache.Get[string](cacheInterface, "test2")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(test2Value) {
- t.Fatalf("Delete Value Error: cache %v\n", test2Value)
- }
- err = cache.Clear(cacheInterface)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- allValues, err = cache.GetAll(cacheInterface)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if len(allValues) != 0 {
- t.Fatalf("Clear Value Error: cache %v\n", allValues)
- }
- err = cache.Set(cacheInterface, "test", "test-value", 1)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- time.Sleep(1500 * time.Millisecond)
- testValue, err := cache.Get[string](cacheInterface, "test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(testValue) {
- t.Fatalf("Value Expire Error: cache %v\n", testValue)
- }
- err = cache.Clear(cacheInterface)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- }
- func testCacheExpire(t *testing.T, cacheInterface cache.Cache) {
- err := cache.Set(cacheInterface, "test", 10, 1)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- time.Sleep(2 * time.Second)
- value, err := cache.Get[string](cacheInterface, "test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(value) {
- t.Fatalf("%+v\n", errors.Errorf("Value Expire Error: cache %v", value))
- }
- err = cache.Set(cacheInterface, "test", 10, 0)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- err = cache.Expire(cacheInterface, "test", 1)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- time.Sleep(2 * time.Second)
- value, err = cache.Get[string](cacheInterface, "test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(value) {
- t.Fatalf("%+v\n", errors.Errorf("Value Expire Error: cache %v", value))
- }
- err = cache.Set(cacheInterface, "test", 10, 5)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- err = cache.Expire(cacheInterface, "test", 1)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- time.Sleep(2 * time.Second)
- value, err = cache.Get[string](cacheInterface, "test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if strutils.IsStringNotEmpty(value) {
- t.Fatalf("%+v\n", errors.Errorf("Value Expire Error: cache %v", value))
- }
- err = cache.Set(cacheInterface, "test", 10, 10)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- err = cache.Expire(cacheInterface, "test", 5)
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- ttl, err := cache.TTL(cacheInterface, "test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- if ttl != 5 {
- t.Fatalf("%+v\n", errors.Errorf("TTL Error: ttl %v", ttl))
- }
- err = cache.Delete(cacheInterface, "test")
- if err != nil {
- t.Fatalf("%+v\n", err)
- }
- }
|