@@ -114,19 +114,25 @@ var _ = Describe("Redis Ring", func() {
114
114
})
115
115
116
116
Describe ("[new] dynamic setting ring shards" , func () {
117
- It ("uses one shard after setting it to one shard" , func () {
117
+ It ("downscale shard and check reuse shard, upscale shard and check reuse " , func () {
118
118
Expect (ring .Len (), 2 )
119
+
120
+ wantShard := ring .GetAddr ("ringShardOne" )
119
121
ring .SetAddrs (map [string ]string {
120
122
"ringShardOne" : ":" + ringShard1Port ,
121
123
})
122
124
Expect (ring .Len (), 1 )
125
+ gotShard := ring .GetAddr ("ringShardOne" )
126
+ Expect (gotShard ).To (Equal (wantShard ))
123
127
124
128
ring .SetAddrs (map [string ]string {
125
129
"ringShardOne" : ":" + ringShard1Port ,
126
130
"ringShardTwo" : ":" + ringShard2Port ,
127
131
})
128
-
129
132
Expect (ring .Len (), 2 )
133
+ gotShard = ring .GetAddr ("ringShardOne" )
134
+ Expect (gotShard ).To (Equal (wantShard ))
135
+
130
136
})
131
137
132
138
It ("uses 3 shards after setting it to 3 shards" , func () {
@@ -137,18 +143,39 @@ var _ = Describe("Redis Ring", func() {
137
143
ringShard3 , err = startRedis (ringShard3Port )
138
144
Expect (err ).NotTo (HaveOccurred ())
139
145
146
+ shardName1 := "ringShardOne"
147
+ shardAddr1 := ":" + ringShard1Port
148
+ wantShard1 := ring .GetAddr (shardName1 )
149
+ shardName2 := "ringShardTwo"
150
+ shardAddr2 := ":" + ringShard2Port
151
+ wantShard2 := ring .GetAddr (shardName2 )
152
+ shardName3 := "ringShardThree"
153
+ shardAddr3 := ":" + ringShard3Port
154
+
140
155
ring .SetAddrs (map [string ]string {
141
- "ringShardOne" : ":" + ringShard1Port ,
142
- "ringShardTwo" : ":" + ringShard2Port ,
143
- "ringShardThree" : ":" + ringShard3Port ,
156
+ shardName1 : shardAddr1 ,
157
+ shardName2 : shardAddr2 ,
158
+ shardName3 : shardAddr3 ,
144
159
})
145
160
Expect (ring .Len (), 3 )
161
+ gotShard1 := ring .GetAddr (shardName1 )
162
+ gotShard2 := ring .GetAddr (shardName2 )
163
+ gotShard3 := ring .GetAddr (shardName3 )
164
+ Expect (gotShard1 ).To (Equal (wantShard1 ))
165
+ Expect (gotShard2 ).To (Equal (wantShard2 ))
166
+ Expect (gotShard3 ).ToNot (BeNil ())
146
167
147
168
ring .SetAddrs (map [string ]string {
148
- "ringShardOne" : ":" + ringShard1Port ,
149
- "ringShardTwo" : ":" + ringShard2Port ,
169
+ shardName1 : shardAddr1 ,
170
+ shardName2 : shardAddr2 ,
150
171
})
151
172
Expect (ring .Len (), 2 )
173
+ gotShard1 = ring .GetAddr (shardName1 )
174
+ gotShard2 = ring .GetAddr (shardName2 )
175
+ gotShard3 = ring .GetAddr (shardName3 )
176
+ Expect (gotShard1 ).To (Equal (wantShard1 ))
177
+ Expect (gotShard2 ).To (Equal (wantShard2 ))
178
+ Expect (gotShard3 ).To (BeNil ())
152
179
})
153
180
154
181
})
0 commit comments