Sha256: 5f589a0ebd50adce51f375c84c76aa583128545948df4b2424d0f8d5b73779cb

Contents?: true

Size: 1.55 KB

Versions: 22

Compression:

Stored size: 1.55 KB

Contents

require 'spec_helper.rb'

describe Pwwka::Receiver do
  describe "#new" do
    let(:handler_klass) { double('HandlerKlass') }
    let(:channel_connector) { double(Pwwka::ChannelConnector, topic_exchange: topic_exchange, channel: channel)}
    let(:topic_exchange) { double("topic exchange") }
    let(:channel) { double('channel', queue: queue) }
    let(:queue) { double('queue') }
    let(:queue_name) { 'test_queue_name' }

    subject {
      described_class.subscribe(
        handler_klass,
        queue_name
      )
    }

    before do
      allow(Pwwka::ChannelConnector).to receive(:new).and_return(channel_connector)
      allow(handler_klass).to receive(:handle!)
      allow(channel_connector).to receive(:connection_close)
      allow(queue).to receive(:bind)
      allow(queue).to receive(:subscribe).and_yield({}, {}, '{}')
    end

    it 'sets the correct connection_name' do
      subject
      expect(Pwwka::ChannelConnector).to have_received(:new).with(prefetch: nil, connection_name: "c: MyAwesomeApp my_awesome_process")
    end

    it 'closes the conenction on an error' do
      error = 'oh no'
      allow(handler_klass).to receive(:handle!).and_raise(error)
      begin; subject; rescue; end
      expect(channel_connector).to have_received(:connection_close)
    end

    it 'logs on interrupt' do
      allow(handler_klass).to receive(:handle!).and_raise(Interrupt)
      allow(described_class).to receive(:info)
      begin; subject; rescue; end
      expect(described_class).to have_received(:info).with(/Interrupting queue #{queue_name}/)
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
pwwka-1.0.0 spec/unit/receiver_spec.rb
pwwka-1.0.0.RC1 spec/unit/receiver_spec.rb
pwwka-0.24.0 spec/unit/receiver_spec.rb
pwwka-0.23.0 spec/unit/receiver_spec.rb
pwwka-0.22.7 spec/unit/receiver_spec.rb
pwwka-0.22.7.RC spec/unit/receiver_spec.rb
pwwka-0.23.0.RC2 spec/unit/receiver_spec.rb
pwwka-0.22.6 spec/unit/receiver_spec.rb
pwwka-0.23.RC1 spec/unit/receiver_spec.rb
pwwka-0.22.5 spec/unit/receiver_spec.rb
pwwka-0.22.4 spec/unit/receiver_spec.rb
pwwka-0.22.3 spec/unit/receiver_spec.rb
pwwka-0.22.2 spec/unit/receiver_spec.rb
pwwka-0.21.3 spec/unit/receiver_spec.rb
pwwka-0.22.2.RC4 spec/unit/receiver_spec.rb
pwwka-0.22.2.RC3 spec/unit/receiver_spec.rb
pwwka-0.22.2.RC2 spec/unit/receiver_spec.rb
pwwka-0.22.0.RC2 spec/unit/receiver_spec.rb
pwwka-0.22.0.RC spec/unit/receiver_spec.rb
pwwka-0.21.2 spec/unit/receiver_spec.rb