Sha256: 1cfba22341c6cac4c87faf891b04cde3079947c1d829e940940c8425412a29cc

Contents?: true

Size: 966 Bytes

Versions: 1

Compression:

Stored size: 966 Bytes

Contents

# encoding: utf-8

require 'spec_helper'

describe Chain::DSL, '#failure_chain' do
  subject { object.failure_chain(name, failure_chain) }

  let(:object)   { dsl.new([ Spec::FAKE_PROCESSOR ]) }
  let(:dsl)      { described_class::Builder.call(registry) }
  let(:registry) { Environment::DSL.registry(&block) }
  let(:block)    { ->(_) { register(:test, Spec::Processor) } }

  let(:processor)     { Spec::FAKE_PROCESSOR.with_failure_chain(failure_chain) }
  let(:failure_chain) { mock }

  context 'when the processor to alter is registered' do
    let(:name) { :test }

    its(:processors) { should include(processor) }

    it 'should replace the processor' do
      expect(subject.processors.length).to be(1)
    end
  end

  context 'when the processor to alter is not registered' do
    let(:name) { :unknown }

    specify {
      expect {
        subject
      }.to raise_error(UnknownProcessor, 'No processor named :unknown is registered')
    }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
substation-0.0.9 spec/unit/substation/chain/dsl/failure_chain_spec.rb