Sha256: 639e549be0dce6c65be1ec0aa74daa19671f981daf018efa19fe1b49360f1688

Contents?: true

Size: 864 Bytes

Versions: 8

Compression:

Stored size: 864 Bytes

Contents

require 'spec_helper'
require 'mercury/sync'
require 'mercury/monadic'

describe Mercury::Sync do
  include Cps::Methods
  let!(:source) { 'test-exchange1' }
  let!(:queue) { 'test-queue1' }
  describe '::publish' do
    it 'publishes synchronously' do
      sent = {'a' => 1}
      received = []
      test_with_mercury do |m|
        seql do
          and_then { m.start_listener(source, received.method(:push)) }
          and_lift { Mercury::Sync.publish(source, sent) }
          and_then { wait_until { received.any? } }
          and_lift do
            expect(received.size).to eql 1
            expect(received[0].content).to eql sent
          end
        end
      end
    end
  end

  # the block must return a Cps
  def test_with_mercury(&block)
    sources = [source]
    queues = [queue]
    test_with_mercury_cps(sources, queues, &block)
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
mercury_amqp-0.1.9 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.1.7 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.1.6 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.1.5 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.1.4 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.1.3 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.1.2 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.1.0 spec/lib/mercury/sync_spec.rb