class RabbitJobs::Publisher::Test

Publisher for testing. Stores AMQP messages to array.

Public Class Methods

cleanup() click to toggle source
# File lib/rabbit_jobs/publisher/test.rb, line 9
def cleanup
  messages.clear
end
direct_publish_to(routing_key, payload, ex = {}) click to toggle source
# File lib/rabbit_jobs/publisher/test.rb, line 20
def direct_publish_to(routing_key, payload, ex = {})
  exchange_name = ex.is_a?(Hash) ? ex[:name] : ex
  messages.push payload: payload, exchange_name: exchange_name.to_s, routing_key: routing_key.to_s
  true
end
publish_to(routing_key, klass, *params) click to toggle source
# File lib/rabbit_jobs/publisher/test.rb, line 13
def publish_to(routing_key, klass, *params)
  check_amqp_publishing_params(routing_key, klass)

  payload = Job.serialize(klass, *params)
  direct_publish_to(routing_key.to_sym, payload)
end
purge_queue(*routing_keys) click to toggle source
# File lib/rabbit_jobs/publisher/test.rb, line 26
def purge_queue(*routing_keys)
  fail ArgumentError unless routing_keys.present?
  messages.clear
end
queue_status(routing_key) click to toggle source
# File lib/rabbit_jobs/publisher/test.rb, line 31
def queue_status(routing_key)
  check_queue_status_params(routing_key)
  { message_count: messages.count, consumer_count: 0 }
end

Private Class Methods

messages() click to toggle source
# File lib/rabbit_jobs/publisher/test.rb, line 38
def messages
  @messages ||= []
end