@@ -7,7 +7,7 @@ class TestClusterClientSlots < Minitest::Test
7
7
include Helper ::Cluster
8
8
9
9
def test_slot_class
10
- slot = Redis ::Cluster ::Slot . new ( '127.0.0.1:7000' => 1 ..10 )
10
+ slot = Redis ::Cluster ::Slot . new ( '127.0.0.1:7000' => [ 1 ..10 ] )
11
11
12
12
assert_equal false , slot . exists? ( 0 )
13
13
assert_equal true , slot . exists? ( 1 )
@@ -26,15 +26,67 @@ def test_slot_class
26
26
assert_nil slot . put ( 1 , '127.0.0.1:7001' )
27
27
end
28
28
29
+ def test_slot_class_with_multiple_slot_ranges
30
+ slot = Redis ::Cluster ::Slot . new ( '127.0.0.1:7000' => [ 1 ..10 , 30 ..40 ] )
31
+
32
+ assert_equal false , slot . exists? ( 0 )
33
+ assert_equal true , slot . exists? ( 1 )
34
+ assert_equal true , slot . exists? ( 10 )
35
+ assert_equal false , slot . exists? ( 11 )
36
+ assert_equal true , slot . exists? ( 30 )
37
+ assert_equal true , slot . exists? ( 40 )
38
+ assert_equal false , slot . exists? ( 41 )
39
+
40
+ assert_nil slot . find_node_key_of_master ( 0 )
41
+ assert_nil slot . find_node_key_of_slave ( 0 )
42
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_master ( 1 )
43
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_slave ( 1 )
44
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_master ( 10 )
45
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_slave ( 10 )
46
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_slave ( 30 )
47
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_slave ( 40 )
48
+ assert_nil slot . find_node_key_of_master ( 11 )
49
+ assert_nil slot . find_node_key_of_slave ( 11 )
50
+ assert_nil slot . find_node_key_of_master ( 41 )
51
+ assert_nil slot . find_node_key_of_slave ( 41 )
52
+
53
+ assert_nil slot . put ( 1 , '127.0.0.1:7001' )
54
+ assert_nil slot . put ( 30 , '127.0.0.1:7001' )
55
+ end
56
+
29
57
def test_slot_class_with_node_flags_and_replicas
30
- slot = Redis ::Cluster ::Slot . new ( { '127.0.0.1:7000' => 1 ..10 , '127.0.0.1:7001' => 1 ..10 } ,
58
+ slot = Redis ::Cluster ::Slot . new ( { '127.0.0.1:7000' => [ 1 ..10 ] , '127.0.0.1:7001' => [ 1 ..10 ] } ,
59
+ { '127.0.0.1:7000' => 'master' , '127.0.0.1:7001' => 'slave' } ,
60
+ true )
61
+
62
+ assert_equal false , slot . exists? ( 0 )
63
+ assert_equal true , slot . exists? ( 1 )
64
+ assert_equal true , slot . exists? ( 10 )
65
+ assert_equal false , slot . exists? ( 11 )
66
+
67
+ assert_nil slot . find_node_key_of_master ( 0 )
68
+ assert_nil slot . find_node_key_of_slave ( 0 )
69
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_master ( 1 )
70
+ assert_equal '127.0.0.1:7001' , slot . find_node_key_of_slave ( 1 )
71
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_master ( 10 )
72
+ assert_equal '127.0.0.1:7001' , slot . find_node_key_of_slave ( 10 )
73
+ assert_nil slot . find_node_key_of_master ( 11 )
74
+ assert_nil slot . find_node_key_of_slave ( 11 )
75
+
76
+ assert_nil slot . put ( 1 , '127.0.0.1:7002' )
77
+ end
78
+
79
+ def test_slot_class_with_node_flags_replicas_and_slot_range
80
+ slot = Redis ::Cluster ::Slot . new ( { '127.0.0.1:7000' => [ 1 ..10 , 30 ..40 ] , '127.0.0.1:7001' => [ 1 ..10 , 30 ..40 ] } ,
31
81
{ '127.0.0.1:7000' => 'master' , '127.0.0.1:7001' => 'slave' } ,
32
82
true )
33
83
34
84
assert_equal false , slot . exists? ( 0 )
35
85
assert_equal true , slot . exists? ( 1 )
36
86
assert_equal true , slot . exists? ( 10 )
37
87
assert_equal false , slot . exists? ( 11 )
88
+ assert_equal true , slot . exists? ( 30 )
89
+ assert_equal false , slot . exists? ( 41 )
38
90
39
91
assert_nil slot . find_node_key_of_master ( 0 )
40
92
assert_nil slot . find_node_key_of_slave ( 0 )
@@ -44,12 +96,16 @@ def test_slot_class_with_node_flags_and_replicas
44
96
assert_equal '127.0.0.1:7001' , slot . find_node_key_of_slave ( 10 )
45
97
assert_nil slot . find_node_key_of_master ( 11 )
46
98
assert_nil slot . find_node_key_of_slave ( 11 )
99
+ assert_equal '127.0.0.1:7000' , slot . find_node_key_of_master ( 30 )
100
+ assert_equal '127.0.0.1:7001' , slot . find_node_key_of_slave ( 30 )
101
+ assert_nil slot . find_node_key_of_master ( 41 )
102
+ assert_nil slot . find_node_key_of_slave ( 41 )
47
103
48
104
assert_nil slot . put ( 1 , '127.0.0.1:7002' )
49
105
end
50
106
51
107
def test_slot_class_with_node_flags_and_without_replicas
52
- slot = Redis ::Cluster ::Slot . new ( { '127.0.0.1:7000' => 1 ..10 , '127.0.0.1:7001' => 1 ..10 } ,
108
+ slot = Redis ::Cluster ::Slot . new ( { '127.0.0.1:7000' => [ 1 ..10 ] , '127.0.0.1:7001' => [ 1 ..10 ] } ,
53
109
{ '127.0.0.1:7000' => 'master' , '127.0.0.1:7001' => 'slave' } ,
54
110
false )
55
111
0 commit comments