File tree Expand file tree Collapse file tree 2 files changed +33
-3
lines changed Expand file tree Collapse file tree 2 files changed +33
-3
lines changed Original file line number Diff line number Diff line change @@ -19,18 +19,23 @@ def reserve
19
19
release
20
20
end
21
21
else
22
- if incr <= available
22
+ if available?
23
+ incr
23
24
true
24
25
else
25
- release
26
26
false
27
27
end
28
28
end
29
29
end
30
30
end
31
31
32
32
def release
33
- decr
33
+ if get . to_i > 0
34
+ decr
35
+ true
36
+ else
37
+ false
38
+ end
34
39
end
35
40
36
41
def available?
Original file line number Diff line number Diff line change @@ -26,6 +26,20 @@ class SlotsTest < ActiveSupport::TestCase
26
26
assert @slots . available?
27
27
end
28
28
29
+ test 'release when slots are reserved' do
30
+ assert_not @slots . release
31
+
32
+ 3 . times do
33
+ assert @slots . reserve
34
+ end
35
+
36
+ 3 . times do
37
+ assert @slots . release
38
+ end
39
+
40
+ assert_not @slots . release
41
+ end
42
+
29
43
test "reserve with block" do
30
44
assert @slots . reserve
31
45
assert @slots . reserve
@@ -70,6 +84,17 @@ class SlotsTest < ActiveSupport::TestCase
70
84
assert_not slot . available?
71
85
end
72
86
87
+ test "release single slot when reserved" do
88
+ slot = Kredis . slot "myslot"
89
+
90
+ assert_not slot . release
91
+
92
+ assert slot . reserve
93
+ assert slot . release
94
+
95
+ assert_not slot . release
96
+ end
97
+
73
98
test "failing open" do
74
99
stub_redis_down ( @slots ) do
75
100
assert_not @slots . available?
You can’t perform that action at this time.
0 commit comments