test/lint/strings.rb in redis-3.0.2 vs test/lint/strings.rb in redis-3.0.3

- old
+ new

@@ -24,10 +24,18 @@ r.set("foo", "1\n") assert_equal "1\n", r.get("foo") end + def test_set_and_get_with_non_string_value + value = ["a", "b"] + + r.set("foo", value) + + assert_equal value.to_s, r.get("foo") + end + def test_set_and_get_with_ascii_characters if defined?(Encoding) with_external_encoding("ASCII-8BIT") do (0..255).each do |i| str = "#{i.chr}---#{i.chr}" @@ -43,33 +51,72 @@ assert r.setex("foo", 1, "bar") assert_equal "bar", r.get("foo") assert [0, 1].include? r.ttl("foo") end + def test_setex_with_non_string_value + value = ["b", "a", "r"] + + assert r.setex("foo", 1, value) + assert_equal value.to_s, r.get("foo") + assert [0, 1].include? r.ttl("foo") + end + def test_psetex return if version < "2.5.4" assert r.psetex("foo", 1000, "bar") assert_equal "bar", r.get("foo") assert [0, 1].include? r.ttl("foo") end + def test_psetex_with_non_string_value + return if version < "2.5.4" + + value = ["b", "a", "r"] + + assert r.psetex("foo", 1000, value) + assert_equal value.to_s, r.get("foo") + assert [0, 1].include? r.ttl("foo") + end + def test_getset r.set("foo", "bar") assert_equal "bar", r.getset("foo", "baz") assert_equal "baz", r.get("foo") end + def test_getset_with_non_string_value + r.set("foo", "zap") + + value = ["b", "a", "r"] + + assert_equal "zap", r.getset("foo", value) + assert_equal value.to_s, r.get("foo") + end + def test_setnx - r.set("foo", "s1") + r.set("foo", "qux") + assert !r.setnx("foo", "bar") + assert_equal "qux", r.get("foo") - assert_equal "s1", r.get("foo") + r.del("foo") + assert r.setnx("foo", "bar") + assert_equal "bar", r.get("foo") + end - r.setnx("foo", "s2") + def test_setnx_with_non_string_value + value = ["b", "a", "r"] - assert_equal "s1", r.get("foo") + r.set("foo", "qux") + assert !r.setnx("foo", value) + assert_equal "qux", r.get("foo") + + r.del("foo") + assert r.setnx("foo", value) + assert_equal value.to_s, r.get("foo") end def test_incr assert_equal 1, r.incr("foo") assert_equal 2, r.incr("foo") @@ -131,10 +178,19 @@ r.setbit("foo", 6, 1) assert_equal "c", r.get("foo") end + def test_bitcount + return if version < "2.5.10" + + r.set("foo", "abcde") + + assert_equal 10, r.bitcount("foo", 1, 3) + assert_equal 17, r.bitcount("foo", 0, -1) + end + def test_getrange r.set("foo", "abcde") assert_equal "bcd", r.getrange("foo", 1, 3) assert_equal "abcde", r.getrange("foo", 0, -1) @@ -144,9 +200,19 @@ r.set("foo", "abcde") r.setrange("foo", 1, "bar") assert_equal "abare", r.get("foo") + end + + def test_setrange_with_non_string_value + r.set("foo", "abcde") + + value = ["b", "a", "r"] + + r.setrange("foo", 2, value) + + assert_equal "ab#{value.to_s}", r.get("foo") end def test_strlen r.set "foo", "lorem"