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
1919 release
2020 end
2121 else
22- if incr <= available
22+ if available?
23+ incr
2324 true
2425 else
25- release
2626 false
2727 end
2828 end
2929 end
3030 end
3131
3232 def release
33- decr
33+ if get . to_i . between? ( 1 , available )
34+ decr
35+ true
36+ else
37+ false
38+ end
3439 end
3540
3641 def available?
Original file line number Diff line number Diff line change @@ -26,6 +26,20 @@ class SlotsTest < ActiveSupport::TestCase
2626 assert @slots . available?
2727 end
2828
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+
2943 test "reserve with block" do
3044 assert @slots . reserve
3145 assert @slots . reserve
@@ -70,6 +84,17 @@ class SlotsTest < ActiveSupport::TestCase
7084 assert_not slot . available?
7185 end
7286
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+
7398 test "failing open" do
7499 stub_redis_down ( @slots ) do
75100 assert_not @slots . available?
You can’t perform that action at this time.
0 commit comments