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() }