Sha256: 749a2871b93985f5e19e76f73da054a92eb4546a425e2e6fce281289f1afe88e

Contents?: true

Size: 903 Bytes

Versions: 4

Compression:

Stored size: 903 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 }

  after { freddy.close }

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

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

    it 'handles multiple threads' do
      require 'hamster/experimental/mutable_set'
      msg_counter = Hamster.mutable_set
      nr_of_threads.times.map do |index|
        Thread.new do
          response = freddy.deliver_with_response 'thread-queue', payload
          msg_counter << index
          expect(response).to eq(payload)
        end
      end.each(&:join)
      expect(msg_counter.count).to eq(nr_of_threads)
    end

  end

end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
freddy-jruby-0.4.9 spec/freddy/request_spec.rb
freddy-0.4.9 spec/freddy/request_spec.rb
freddy-0.4.8 spec/freddy/request_spec.rb
freddy-0.4.7 spec/freddy/request_spec.rb