-
Notifications
You must be signed in to change notification settings - Fork 2
/
each_spec.rb
46 lines (34 loc) · 1.05 KB
/
each_spec.rb
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
# encoding: utf-8
require 'spec_helper'
describe Chain, '#each' do
subject { object.each { |tuple| yields << processor } }
let(:object) { described_class.new(processors) }
let(:processors) { [ processor ] }
let(:processor) { Spec::Processor.new(Spec::FAKE_HANDLER) }
let(:yields) { [] }
before do
object.should be_instance_of(described_class)
end
it_should_behave_like 'an #each method'
it 'yields only processors' do
subject
yields.each { |processor| processor.should be_instance_of(Spec::Processor) }
end
it 'yields only processors with the expected handler' do
expect { subject }.to change { yields.dup }.
from([]).
to([ processor ])
end
end
describe Chain do
subject { described_class.new(processors) }
let(:processors) { [ processor ] }
let(:processor) { Spec::Processor.new(Spec::FAKE_HANDLER) }
before do
subject.should be_instance_of(described_class)
end
it { should be_kind_of(Enumerable) }
it 'case matches Enumerable' do
(Enumerable === subject).should be(true)
end
end