@@ -172,6 +172,34 @@ func TestSortedSetAdd(t *testing.T) {
172172 ok (t , err )
173173 equals (t , 1 , b )
174174
175+ n , err := redis .Float64 (c .Do ("ZADD" , "z" , "INCR" , 1.2 , "one" ))
176+ ok (t , err )
177+ equals (t , 2.4 , n )
178+
179+ z , err := c .Do ("ZADD" , "z" , "INCR" , "NX" , 1.2 , "one" )
180+ ok (t , err )
181+ equals (t , nil , z )
182+
183+ n , err = redis .Float64 (c .Do ("ZADD" , "z" , "INCR" , "XX" , 1.2 , "one" ))
184+ ok (t , err )
185+ equals (t , 3.6 , n )
186+
187+ z , err = c .Do ("ZADD" , "q" , "INCR" , "XX" , 1.2 , "one" )
188+ ok (t , err )
189+ equals (t , nil , z )
190+
191+ n , err = redis .Float64 (c .Do ("ZADD" , "q" , "INCR" , "NX" , 1.2 , "one" ))
192+ ok (t , err )
193+ equals (t , 1.2 , n )
194+
195+ z , err = c .Do ("ZADD" , "q" , "INCR" , "NX" , 1.2 , "one" )
196+ ok (t , err )
197+ equals (t , nil , z )
198+
199+ // CH is ignored with INCR
200+ n , err = redis .Float64 (c .Do ("ZADD" , "z" , "INCR" , "CH" , 1.2 , "one" ))
201+ ok (t , err )
202+ equals (t , 4.8 , n )
175203 }
176204
177205 // Error cases
@@ -192,8 +220,12 @@ func TestSortedSetAdd(t *testing.T) {
192220 assert (t , err != nil , "ZADD error" )
193221 _ , err = redis .String (c .Do ("ZADD" , "set" , "MX" , 1.0 ))
194222 assert (t , err != nil , "ZADD error" )
223+ _ , err = redis .String (c .Do ("ZADD" , "set" , 1.0 , "key" , "MX" ))
224+ assert (t , err != nil , "ZADD error" )
195225 _ , err = redis .String (c .Do ("ZADD" , "set" , "MX" , "XX" , 1.0 , "foo" ))
196226 assert (t , err != nil , "ZADD error" )
227+ _ , err = redis .String (c .Do ("ZADD" , "set" , "INCR" , 1.0 , "foo" , 2.3 , "bar" ))
228+ assert (t , err != nil , "ZADD error" )
197229 }
198230}
199231
0 commit comments