50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package redis
|
|
|
|
import (
|
|
"sync"
|
|
"testing"
|
|
|
|
"git.zhangdeman.cn/zhangdeman/redis/define"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func TestAddClientKeepsMasterAndSlaveSeparate(t *testing.T) {
|
|
client := &OwnClient{
|
|
lock: &sync.RWMutex{},
|
|
instanceTable: map[string]*define.ClientInfo{},
|
|
whiteCommandTable: map[string]bool{},
|
|
logger: zap.NewNop(),
|
|
}
|
|
err := client.AddClient("main", zap.NewNop(), &define.Config{
|
|
Master: &define.Options{Addr: "master.example:6379"},
|
|
Slave: &define.Options{Addr: "slave.example:6379"},
|
|
})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
info := client.GetRealClient("main")
|
|
if info.MasterClient() == nil || info.MasterClient().Options().Addr != "master.example:6379" {
|
|
t.Fatal("master connection was overwritten")
|
|
}
|
|
if info.SlaveClient() == nil || info.SlaveClient().Options().Addr != "slave.example:6379" {
|
|
t.Fatal("slave connection was not retained")
|
|
}
|
|
_ = info.MasterClient().Close()
|
|
_ = info.SlaveClient().Close()
|
|
}
|
|
|
|
func TestNewClientPassesContextTimeoutEnabled(t *testing.T) {
|
|
client := &OwnClient{}
|
|
redisClient := client.newClient(&define.Options{
|
|
Addr: "127.0.0.1:6379",
|
|
ContextTimeoutEnabled: true,
|
|
})
|
|
t.Cleanup(func() {
|
|
_ = redisClient.Close()
|
|
})
|
|
|
|
if !redisClient.Options().ContextTimeoutEnabled {
|
|
t.Fatal("context timeout option was not passed to go-redis")
|
|
}
|
|
}
|