File: redis_spec.rb

package info (click to toggle)
ruby-em-synchrony 1.0.5-3.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 572 kB
  • sloc: ruby: 3,458; sh: 37; sql: 7; makefile: 2
file content (105 lines) | stat: -rw-r--r-- 2,388 bytes parent folder | download | duplicates (2)
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
require "spec/helper/all"

describe EM::Protocols::Redis do

  it "should yield until connection is ready" do
    EventMachine.synchrony do
      connection = EM::Protocols::Redis.connect
      connection.connected.should eq(true)

      EventMachine.stop
    end
  end

  it "should get/set records synchronously" do
    EventMachine.synchrony do
      redis = EM::Protocols::Redis.connect

      redis.set('a', 'foo')
      redis.get('a').should == 'foo'
      redis.get('c').should == nil

      EM.stop
    end
  end

  it "should mapped_mget synchronously" do
    EventMachine.synchrony do
      redis = EM::Protocols::Redis.connect

      redis.set('mmget1', 'value1')
      redis.set('mmget3', 'value3')
      redis.mapped_mget('mmget1', 'mmget2', 'mmget3').should ==
        { 'mmget1' => 'value1', 'mmget3' => 'value3' }

      EM.stop
    end
  end

  it "should incr/decr key synchronously" do
    EventMachine.synchrony do
      redis = EM::Protocols::Redis.connect
      redis.delete('key')

      redis.incr('key')
      redis.get('key').to_i.should == 1

      redis.decr('key')
      redis.get('key').to_i.should == 0

      EM.stop
    end
  end

  it "should execute async commands" do
    EventMachine.synchrony do
      redis = EM::Protocols::Redis.connect
      redis.set('a', 'foobar')
      redis.aget('a') do |response|
        response.should == 'foobar'
        EM.stop
      end
    end
  end

  it "should execute async set add" do
    EventMachine.synchrony do
      redis = EM::Protocols::Redis.connect

      redis.asadd('test', 'hai') do
        redis.asadd('test', 'bai') do
          redis.aset_count('test') do |resp|
            resp.to_i.should == 2
            EM.stop
          end
        end
      end
    end
  end

  it "should execute async mapped_mget" do
    EventMachine.synchrony do
      redis = EM::Protocols::Redis.connect

      redis.aset('some_key', 'some_value') do
        redis.amapped_mget('some_key', 'some_other_key') do |values|
          values.should == { 'some_key' => 'some_value' }
          EM.stop
        end
      end
    end
  end

  xit "should execute sync add and auth", ci_skip: true do
    EventMachine.synchrony do
      redis = EM::Protocols::Redis.connect
      redis.auth('abc')

      redis.delete('key')
      redis.add('key', 'value')
      redis.scard('key').should == 1

      EM.stop
    end
  end
end