+func TestStateWithTwoSdlClustersContainingPrimaryAndTwoReplicaRedisSuccessfully(t *testing.T) {
+ setupVals := setupEnv(
+ true,
+ "", "6379,6380", "dbaasmaster-cluster-0,dbaasmaster-cluster-1",
+ "26379,26380", "service-ricplt-dbaas-tcp-cluster-0.ricplt,service-ricplt-dbaas-tcp-cluster-1.ricplt", "3",
+ )
+ r := setupVals.rClient
+ s := setupVals.rSentinel
+ db := setupVals.db
+
+ FstRedisPrimaryState := newMockRedisMasterCallResp("master", "10.20.30.30", "6379", "master")
+ FstRedisReplicasState := newMockRedisSlavesCall()
+ FstRedisReplicasState.add("slave", "10.20.30.40", "6379", "up", "slave")
+ FstRedisReplicasState.add("slave", "10.20.30.50", "6379", "up", "slave")
+ FstRedisSentinelsState := newMockRedisSentinelsCall()
+ FstRedisSentinelsState.add("10.20.30.40", "26379", "sentinel")
+ FstRedisSentinelsState.add("10.20.30.50", "26379", "sentinel")
+
+ SndRedisPrimaryState := newMockRedisMasterCallResp("master", "10.20.30.60", "6380", "master")
+ SndRedisReplicasState := newMockRedisSlavesCall()
+ SndRedisReplicasState.add("slave", "10.20.30.70", "6380", "up", "slave")
+ SndRedisReplicasState.add("slave", "10.20.30.80", "6380", "up", "slave")
+ SndRedisSentinelsState := newMockRedisSentinelsCall()
+ SndRedisSentinelsState.add("10.20.30.70", "26380", "sentinel")
+ SndRedisSentinelsState.add("10.20.30.80", "26380", "sentinel")
+
+ FstExpState := newExpDbState(3, nil)
+ FstExpState.addPrimary("master", "10.20.30.30", "6379", "master", nil)
+ FstExpState.addReplica("slave", "10.20.30.40", "6379", "up", "slave", nil)
+ FstExpState.addReplica("slave", "10.20.30.50", "6379", "up", "slave", nil)
+ FstExpState.addSentinel("10.20.30.40", "26379", "sentinel", nil)
+ FstExpState.addSentinel("10.20.30.50", "26379", "sentinel", nil)
+
+ SndExpState := newExpDbState(3, nil)
+ SndExpState.addPrimary("master", "10.20.30.60", "6380", "master", nil)
+ SndExpState.addReplica("slave", "10.20.30.70", "6380", "up", "slave", nil)
+ SndExpState.addReplica("slave", "10.20.30.80", "6380", "up", "slave", nil)
+ SndExpState.addSentinel("10.20.30.70", "26380", "sentinel", nil)
+ SndExpState.addSentinel("10.20.30.80", "26380", "sentinel", nil)
+
+ s[0].On("Master", "dbaasmaster-cluster-0").Return(redis.NewStringStringMapResult(FstRedisPrimaryState, nil))
+ s[0].On("Slaves", "dbaasmaster-cluster-0").Return(redis.NewSliceResult(FstRedisReplicasState.resp, nil))
+ s[0].On("Sentinels", "dbaasmaster-cluster-0").Return(redis.NewSliceResult(FstRedisSentinelsState.resp, nil))
+
+ s[0].On("Master", "dbaasmaster-cluster-1").Return(redis.NewStringStringMapResult(SndRedisPrimaryState, nil))
+ s[0].On("Slaves", "dbaasmaster-cluster-1").Return(redis.NewSliceResult(SndRedisReplicasState.resp, nil))
+ s[0].On("Sentinels", "dbaasmaster-cluster-1").Return(redis.NewSliceResult(SndRedisSentinelsState.resp, nil))
+
+ ret, err := db[0].State()
+ assert.Nil(t, err)
+ assert.Equal(t, FstExpState.s, *ret)
+
+ ret, err = db[1].State()
+ assert.Nil(t, err)
+ assert.Equal(t, SndExpState.s, *ret)
+ r[0].AssertExpectations(t)
+}
+