File: value_types.rb

package info (click to toggle)
ruby-redis 3.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 736 kB
  • ctags: 1,128
  • sloc: ruby: 8,149; makefile: 5
file content (122 lines) | stat: -rw-r--r-- 2,468 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
module Lint

  module ValueTypes

    def test_exists
      assert_equal false, r.exists("foo")

      r.set("foo", "s1")

      assert_equal true,  r.exists("foo")
    end

    def test_type
      assert_equal "none", r.type("foo")

      r.set("foo", "s1")

      assert_equal "string", r.type("foo")
    end

    def test_keys
      r.set("f", "s1")
      r.set("fo", "s2")
      r.set("foo", "s3")

      assert_equal ["f","fo", "foo"], r.keys("f*").sort
    end

    def test_expire
      r.set("foo", "s1")
      assert r.expire("foo", 2)
      assert_in_range 0..2, r.ttl("foo")
    end

    def test_pexpire
      target_version "2.5.4" do
        r.set("foo", "s1")
        assert r.pexpire("foo", 2000)
        assert_in_range 0..2, r.ttl("foo")
      end
    end

    def test_expireat
      r.set("foo", "s1")
      assert r.expireat("foo", (Time.now + 2).to_i)
      assert_in_range 0..2, r.ttl("foo")
    end

    def test_pexpireat
      target_version "2.5.4" do
        r.set("foo", "s1")
        assert r.pexpireat("foo", (Time.now + 2).to_i * 1_000)
        assert_in_range 0..2, r.ttl("foo")
      end
    end

    def test_persist
      r.set("foo", "s1")
      r.expire("foo", 1)
      r.persist("foo")

      assert(-1 == r.ttl("foo"))
    end

    def test_ttl
      r.set("foo", "s1")
      r.expire("foo", 2)
      assert_in_range 0..2, r.ttl("foo")
    end

    def test_pttl
      target_version "2.5.4" do
        r.set("foo", "s1")
        r.expire("foo", 2)
        assert_in_range 1..2000, r.pttl("foo")
      end
    end

    def test_dump_and_restore
      target_version "2.5.7" do
        r.set("foo", "a")
        v = r.dump("foo")
        r.del("foo")

        assert r.restore("foo", 1000, v)
        assert_equal "a", r.get("foo")
        assert [0, 1].include? r.ttl("foo")

        r.rpush("bar", ["b", "c", "d"])
        w = r.dump("bar")
        r.del("bar")

        assert r.restore("bar", 1000, w)
        assert_equal ["b", "c", "d"], r.lrange("bar", 0, -1)
        assert [0, 1].include? r.ttl("bar")
      end
    end

    def test_move
      r.select 14
      r.flushdb

      r.set "bar", "s3"

      r.select 15

      r.set "foo", "s1"
      r.set "bar", "s2"

      assert r.move("foo", 14)
      assert_equal nil, r.get("foo")

      assert !r.move("bar", 14)
      assert_equal "s2", r.get("bar")

      r.select 14

      assert_equal "s1", r.get("foo")
      assert_equal "s3", r.get("bar")
    end
  end
end