Sha256: e1d6e776282de73d22cfdd10e476e4e1caf9865f152bd093fd39a5eb5aa209fb

Contents?: true

Size: 1.05 KB

Versions: 7

Compression:

Stored size: 1.05 KB

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
    %w{with without}.each do |w|
      it "publishes synchronously (#{w} publisher confirms)" do
        use_publisher_confirms = w == 'with'
        sent = {'a' => 1}
        received = []
        test_with_mercury(wait_for_publisher_confirms: use_publisher_confirms) 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
  end

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

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mercury_amqp-0.7.0 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.6.1 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.6.0 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.5.0 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.4.0 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.3.0 spec/lib/mercury/sync_spec.rb
mercury_amqp-0.2.0 spec/lib/mercury/sync_spec.rb