Sha256: 4ff92edb8c109c27d95794ccf3c5feef8c161cb5c2b2e7edd8d4c1b4817a9975

Contents?: true

Size: 1.07 KB

Versions: 8

Compression:

Stored size: 1.07 KB

Contents

require 'spec_helper'

class Receiver
end

#
class MsgrTestConsumer < Msgr::Consumer
  def index
    Receiver.index
  end

  def error
    Receiver.error
  end
end

describe Msgr do
  before do
    Msgr.logger = nil
    Msgr.logger.level = Logger::Severity::DEBUG if Msgr.logger
  end

  let(:queue) { Queue.new }
  let(:client) { Msgr::Client.new size: 1, prefix: SecureRandom.hex(2) }

  before do
    client.routes.configure do
      route 'test.index', to: 'msgr_test#index'
      route 'test.error', to: 'msgr_test#error'
    end

    client.start
  end

  after do
    client.stop delete: true
  end

  it 'should dispatch published methods to consumer' do
    expect(Receiver).to receive(:index) { queue << :end }

    client.publish 'Payload', to: 'test.index'

    Timeout::timeout(4) { queue.pop }
  end

  it 'should redelivery failed messages' do
    expect(Receiver).to receive(:error).ordered.and_raise RuntimeError
    expect(Receiver).to receive(:error).ordered { queue << :end }

    client.publish 'Payload', to: 'test.error'

    Timeout::timeout(4) { queue.pop }
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
msgr-0.12.3 spec/msgr/msgr_spec.rb
msgr-0.12.2 spec/msgr/msgr_spec.rb
msgr-0.12.1 spec/msgr/msgr_spec.rb
msgr-0.12.0 spec/msgr/msgr_spec.rb
msgr-0.11.1 spec/msgr/msgr_spec.rb
msgr-0.11.0 spec/msgr/msgr_spec.rb
msgr-0.11.0.rc3 spec/msgr/msgr_spec.rb
msgr-0.11.0.rc2 spec/msgr/msgr_spec.rb