|
3 | 3 | SingleCov.covered! if defined?(SingleCov) |
4 | 4 |
|
5 | 5 | describe Riak::Multi do |
6 | | - let(:multi) { Riak::Multi.new(@client, @pairs) } |
| 6 | + class TestMulti < Riak::Multi |
| 7 | + def work(bucket, key) |
| 8 | + "value-#{bucket.name}-#{key}" |
| 9 | + end |
| 10 | + end |
| 11 | + |
| 12 | + let(:multi) { TestMulti.new(@client, @pairs) } |
7 | 13 |
|
8 | 14 | before :each do |
9 | 15 | @client = Riak::Client.new |
|
25 | 31 |
|
26 | 32 | describe ".perform" do |
27 | 33 | it "works" do |
28 | | - expect_any_instance_of(Riak::Multi).to receive(:work).with(@bucket, 'key1') |
29 | | - expect_any_instance_of(Riak::Multi).to receive(:work).with(@bucket, 'key2') |
30 | | - expect(Riak::Multi.perform(@client, @pairs)).to eq([@bucket, 'key1'] => nil, [@bucket, 'key2'] => nil) |
| 34 | + expect(TestMulti.perform(@client, @pairs)).to eq([@bucket, 'key1'] => 'value-foo-key1', [@bucket, 'key2'] => 'value-foo-key2') |
31 | 35 | end |
32 | 36 | end |
33 | 37 |
|
34 | 38 | describe "#perform" do |
35 | 39 | it "works on both keys from the bucket" do |
36 | | - expect(multi).to receive(:work).with(@bucket, 'key1') |
37 | | - expect(multi).to receive(:work).with(@bucket, 'key2') |
38 | 40 | multi.perform |
39 | 41 | multi.wait_for_finish |
| 42 | + expect(multi.results).to eq([@bucket, 'key1'] => "value-foo-key1", [@bucket, 'key2'] => "value-foo-key2") |
40 | 43 | end |
41 | 44 |
|
42 | 45 | it "works asynchronously" do |
|
91 | 94 |
|
92 | 95 | describe "#results" do |
93 | 96 | it "returns a hash of pairs to values" do |
94 | | - expect(multi).to receive(:work).with(@bucket, 'key1') |
95 | | - expect(multi).to receive(:work).with(@bucket, 'key2') |
96 | | - |
97 | 97 | multi.perform |
98 | | - |
99 | 98 | expect(multi.results).to be_a Hash |
100 | 99 | end |
101 | 100 | end |
102 | 101 |
|
103 | 102 | describe "#work" do |
104 | 103 | it "needs to be implemented in the subclasses" do |
105 | | - expect { multi.send(:work, 1, 2) }.to raise_error(NotImplementedError) |
| 104 | + expect { Riak::Multi.new(@client, @pairs).send(:work, 1, 2) }.to raise_error(NotImplementedError) |
106 | 105 | end |
107 | 106 | end |
108 | 107 | end |
0 commit comments