Sha256: 1a96085e9319378f38c6abc9e238738726d3eea0b6826f540a634b54feed5279

Contents?: true

Size: 1.44 KB

Versions: 46

Compression:

Stored size: 1.44 KB

Contents

require 'spec_helper.rb'
require_relative "support/integration_test_setup"
require_relative "support/logging_receiver"
require_relative "support/integration_test_helpers"

describe "receivers being interrupted", :integration do
  include IntegrationTestHelpers

  before do
    @testing_setup = IntegrationTestSetup.new
    setup_receivers
  end

  before :each do
    WellBehavedReceiver.reset!
  end

  after do
    @testing_setup.kill_threads_and_clear_queues
  end

  it "an error in one receiver doesn't prevent others from getting messages" do
    Pwwka::Transmitter.send_message!({ sample: "payload", has: { deeply: true, nested: 4 }},
                                     "pwwka.testing.foo")
    allow_receivers_to_process_queues

    expect(WellBehavedReceiver.messages_received.size).to eq(1)
    expect(@testing_setup.threads[WellBehavedReceiver].alive?).to eq(true)
    expect(@testing_setup.threads[InterruptingReceiver].alive?).to eq(false)
  end

  def setup_receivers
    [
      [InterruptingReceiver, "interrupting_receiver_pwwkatesting"],
      [WellBehavedReceiver, "well_behaved_receiver_pwwkatesting"],
    ].each do |(klass, queue_name)|
      @testing_setup.make_queue_and_setup_receiver(klass,queue_name,"#")
    end
  end
  class InterruptingReceiver
    def self.handle!(delivery_info,properties,payload)
      raise Interrupt,'simulated interrupt would realy be a signal'
    end
  end
  class WellBehavedReceiver < LoggingReceiver
  end
end

Version data entries

46 entries across 46 versions & 1 rubygems

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