Sha256: 31ff5ea7c0eb9fc65e46b17075dbd1601b5bd7cb8de55b2ca6f23870340e0391

Contents?: true

Size: 1.13 KB

Versions: 15

Compression:

Stored size: 1.13 KB

Contents

require 'gorgon/shutdown_manager'

describe ShutdownManager do
  let(:protocol){ double("Originator Protocol", :cancel_job => nil, :disconnect => nil)}

  let(:job_state){ double("JobState", cancel: nil)}

  describe '#cancel_job' do
    it "call JobState#cancel" do
      job_state.should_receive(:cancel)

      shutdown_manager(job_state: job_state).cancel_job
    end

    it "tells @protocol to cancel job and disconnect" do
      protocol.should_receive(:cancel_job)
      protocol.should_receive(:disconnect)

      shutdown_manager(protocol: protocol).cancel_job
    end

    it 'finishes cancelling job even when some cancelling steps fail' do
      protocol.should_receive(:cancel_job).and_raise StandardError
      job_state.should_receive(:cancel).and_raise StandardError
      protocol.should_receive(:disconnect).and_raise StandardError

      expect {
        shutdown_manager(protocol: protocol, job_state: job_state).cancel_job
      }.to raise_error StandardError
    end
  end

  def shutdown_manager(args)
    defaults = {
        protocol: protocol,
        job_state: job_state
    }
    ShutdownManager.new(defaults.merge(args))
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
gorgon-0.11.0 spec/shutdown_manager_spec.rb
gorgon-0.10.5 spec/shutdown_manager_spec.rb
gorgon-0.10.4 spec/shutdown_manager_spec.rb
gorgon-0.10.3 spec/shutdown_manager_spec.rb
gorgon-0.10.2 spec/shutdown_manager_spec.rb
gorgon-0.10.1 spec/shutdown_manager_spec.rb
gorgon-0.10.0 spec/shutdown_manager_spec.rb
gorgon-0.9.0 spec/shutdown_manager_spec.rb
gorgon-0.8.4 spec/shutdown_manager_spec.rb
gorgon-0.8.3 spec/shutdown_manager_spec.rb
gorgon-0.8.2 spec/shutdown_manager_spec.rb
gorgon-0.8.1 spec/shutdown_manager_spec.rb
gorgon-0.8.0 spec/shutdown_manager_spec.rb
gorgon-0.7.1 spec/shutdown_manager_spec.rb
gorgon-0.7.0 spec/shutdown_manager_spec.rb