123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package cache
- import (
- "errors"
- "strings"
- "testing"
- "time"
- "github.com/redis/go-redis/v9"
- )
- const (
- TEST_PREFIX = "test"
- )
- func getRedisConnection(t *testing.T) error {
- return InitRedisClient("0.0.0.0:6379", "difyai123456")
- }
- func TestRedisConnection(t *testing.T) {
- // get redis connection
- if err := getRedisConnection(t); err != nil {
- t.Errorf("get redis connection failed: %v", err)
- return
- }
- // close
- if err := Close(); err != nil {
- t.Errorf("close redis client failed: %v", err)
- return
- }
- }
- func TestRedisTransaction(t *testing.T) {
- // get redis connection
- if err := getRedisConnection(t); err != nil {
- t.Errorf("get redis connection failed: %v", err)
- return
- }
- defer Close()
- // test transaction
- err := Transaction(func(p redis.Pipeliner) error {
- // set key
- if err := Store(
- strings.Join([]string{TEST_PREFIX, "key"}, ":"),
- "value",
- time.Second,
- p,
- ); err != nil {
- t.Errorf("store key failed: %v", err)
- return err
- }
- return errors.New("test transaction error")
- })
- if err == nil {
- t.Errorf("transaction should return error")
- return
- }
- // get key
- value, err := GetString(
- strings.Join([]string{TEST_PREFIX, "key"}, ":"),
- )
- if err != ErrNotFound {
- t.Errorf("key should not exist")
- return
- }
- if value != "" {
- t.Errorf("value should be empty")
- return
- }
- // test success transaction
- err = Transaction(func(p redis.Pipeliner) error {
- // set key
- if err := Store(
- strings.Join([]string{TEST_PREFIX, "key"}, ":"),
- "value",
- time.Second,
- p,
- ); err != nil {
- t.Errorf("store key failed: %v", err)
- return err
- }
- return nil
- })
- if err != nil {
- t.Errorf("transaction should not return error")
- return
- }
- defer Del(strings.Join([]string{TEST_PREFIX, "key"}, ":"))
- // get key
- value, err = GetString(
- strings.Join([]string{TEST_PREFIX, "key"}, ":"),
- )
- if err != nil {
- t.Errorf("get key failed: %v", err)
- return
- }
- if value != "value" {
- t.Errorf("value should be value")
- return
- }
- }
|