Sha256: 96ee4f167e8de5f0eee72be67fd50e9359923a6a81863a8c5264c9b95c44fe83

Contents?: true

Size: 980 Bytes

Versions: 11

Compression:

Stored size: 980 Bytes

Contents

require 'spec_helper'

describe Freddy::Request do
  let(:freddy) { Freddy.build(logger, config) }

  let(:destination) { random_destination }
  let(:payload)     { {pay: 'load'} }

  let(:request) { freddy.request }

  it 'raises empty responder exception when responding without callback' do
    expect {@responder = request.respond_to destination }.to raise_error described_class::EmptyResponder
  end

  context 'requesting from multiple threads' do
    let(:nr_of_threads) { 10 }

    before do
      freddy.respond_to 'thread-queue' do |payload, msg_handler|
        msg_handler.success(payload)
      end
    end

    it 'handles multiple threads' do
      msg_counter = 0
      nr_of_threads.times.map do
        Thread.new do
          response = freddy.deliver_with_response 'thread-queue', payload
          msg_counter += 1
          expect(response).to eq(payload)
        end
      end.each(&:join)
      expect(msg_counter).to eq(nr_of_threads)
    end

  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
freddy-0.4.2 spec/freddy/request_spec.rb
freddy-0.4.1 spec/freddy/request_spec.rb
freddy-0.4.0 spec/freddy/request_spec.rb
freddy-0.3.7 spec/freddy/request_spec.rb
freddy-0.3.6 spec/freddy/request_spec.rb
freddy-0.3.5 spec/freddy/request_spec.rb
freddy-0.3.4 spec/freddy/request_spec.rb
freddy-0.3.3 spec/freddy/request_spec.rb
freddy-0.3.2 spec/freddy/request_spec.rb
freddy-0.3.1 spec/freddy/request_spec.rb
freddy-0.3.0 spec/freddy/request_spec.rb