module Asynk::TestHelper

Public Instance Methods

asynk_response() click to toggle source
# File lib/asynk/test_helper.rb, line 26
def asynk_response
  @asynk_response
end
asynk_response=(response) click to toggle source
# File lib/asynk/test_helper.rb, line 22
def asynk_response=(response)
  @asynk_response = response
end
find_consumers_by_route(route) click to toggle source
# File lib/asynk/test_helper.rb, line 30
def find_consumers_by_route(route)
  Asynk.consumers.select{ |consumer| consumer.routing_keys.any?{ |key| key == route } }
end
publish_sync(routing_key, options) click to toggle source
# File lib/asynk/test_helper.rb, line 3
def publish_sync(routing_key, options)
  consumers = find_consumers_by_route(routing_key)
  raise "Cant find consumer by route: #{routing_key}" if consumers.empty?
  raise "No ability to test multiple consumer per route" if consumers.count > 1
  consumer = consumers.first

  bunny_mocked_channel = BunnyMockedChannel.new
  bunny_mocked_delivery_info = BuunyMockedDeliveryInfo.new(routing_key)
  bunny_mock_properties = BuunyMockedProperties.new

  message = Asynk::Message.new(bunny_mocked_delivery_info, bunny_mock_properties, options.to_json)
  consumer_instance = consumer.new(bunny_mocked_channel, bunny_mocked_delivery_info) do |result|
    self.asynk_response = result.kind_of?(String) ? result : result.to_json
  end

  consumer_instance.invoke_processing(message)
  asynk_response
end