Sha256: b31b8e2b0ef4776866889cf37e7a20f314eb9883aece1c1e365a4b52adf4cbc3
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
# encoding: utf-8 require 'spec_helper' describe Chain, '#call' do subject { object.call(request) } let(:object) { described_class.new(handlers) } let(:handlers) { [ handler_1, handler_2 ] } let(:request) { Request.new(env, input) } let(:env) { mock } let(:input) { mock } let(:handler_2) { Class.new { include Substation::Chain::Outgoing def call(request) request.success(request.input) end }.new } context "when all handlers are successful" do let(:handler_1) { Class.new { include Substation::Chain::Incoming def call(request) request.success(request.input) end }.new } let(:response) { Response::Success.new(request, request.input) } it { should eql(response) } end context "when an intermediate handler is not successful" do let(:handler_1) { Class.new { include Substation::Chain::Incoming def call(request) request.error(request.input) end }.new } let(:response) { Response::Failure.new(request, request.input) } before do handler_2.should_not_receive(:call) end it { should eql(response) } end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
substation-0.0.8 | spec/unit/substation/chain/call_spec.rb |
substation-0.0.7 | spec/unit/substation/chain/call_spec.rb |