22
33require "test_helper"
44require "active_support/core_ext/object/inclusion"
5+ require "active_support/core_ext/integer"
56
67class SetTest < ActiveSupport ::TestCase
78 setup { @set = Kredis . set "myset" }
@@ -70,10 +71,10 @@ class SetTest < ActiveSupport::TestCase
7071
7172 @set . add 1.5 , 2.7
7273 @set << 2.7
73- assert_equal [ 1.5 , 2.7 ] , @set . members
74+ assert_equal [ 1.5 , 2.7 ] , @set . members
7475
7576 @set . remove ( 2.7 )
76- assert_equal [ 1.5 ] , @set . members
77+ assert_equal [ 1.5 ] , @set . members
7778
7879 assert_equal 1.5 , @set . take
7980 end
@@ -97,11 +98,10 @@ class SetTest < ActiveSupport::TestCase
9798 @set = Kredis . set "mylist" , typed : :float
9899 @set . add 1.5 , 2.7
99100
100- assert @set . sample . in? ( [ 1.5 , 2.7 ] )
101- assert_equal [ 1.5 , 2.7 ] , @set . sample ( 2 ) . sort
101+ assert @set . sample . in? ( [ 1.5 , 2.7 ] )
102+ assert_equal [ 1.5 , 2.7 ] , @set . sample ( 2 ) . sort
102103 end
103104
104-
105105 test "default" do
106106 @set = Kredis . set "mylist" , default : %w[ 1 2 3 ]
107107 assert_equal %w[ 1 2 3 ] , @set . members
@@ -128,6 +128,18 @@ class SetTest < ActiveSupport::TestCase
128128 assert_equal [ 1 , 2 , 3 , 5 , 6 , 7 ] , @set . members
129129 end
130130
131+ test "add with expiration" do
132+ @set = Kredis . set "mylist" , typed : :integer , expires_in : 1 . second
133+ @set . add ( %w[ 1 2 3 ] )
134+
135+ sleep 0.7 . seconds
136+ @set . add ( %w[ 4 5 ] )
137+ assert_equal [ 1 , 2 , 3 , 4 , 5 ] , @set . members
138+
139+ sleep 0.5 . seconds
140+ assert_equal [ ] , @set . members
141+ end
142+
131143 test "remove with default" do
132144 @set = Kredis . set "mylist" , default : -> ( ) { %w[ 1 2 3 4 ] }
133145 @set . remove ( %w[ 2 3 ] )
@@ -139,6 +151,6 @@ class SetTest < ActiveSupport::TestCase
139151 @set = Kredis . set "mylist" , typed : :integer , default : -> ( ) { %w[ 1 2 3 ] }
140152 @set . add ( %w[ 5 6 7 ] )
141153 @set . replace ( %w[ 8 9 10 ] )
142- assert_equal [ 8 , 9 , 10 ] , @set . members
154+ assert_equal [ 8 , 9 , 10 ] , @set . members
143155 end
144156end
0 commit comments