class FakeServiceBus::Actions::ReceiveMessage

Constants

MAX_WAIT_TIME_SECONDS

Public Class Methods

new(options = {}) click to toggle source
# File lib/fake_servicebus/actions/receive_message.rb, line 7
def initialize(options = {})
  @server    = options.fetch(:server)
  @queues    = options.fetch(:queues)
  @start_ts  = Time.now.to_f
  @satisfied = false
end

Public Instance Methods

call(queue_name, params) click to toggle source
# File lib/fake_servicebus/actions/receive_message.rb, line 14
def call(queue_name, params)
  queue = @queues.get(queue_name)
  message = queue.receive_message(params.merge(queues: @queues))
  @satisfied = !message.nil? || expired?(queue, params)
  if !message.nil?
    [201,
     {'location'=>message.location,
      'BrokerProperties'=>{'SequenceNumber'=>message.sequence_number,
                           'LockToken'=>message.lock_token}.to_json},
     message.body]
  end
end
satisfied?() click to toggle source
# File lib/fake_servicebus/actions/receive_message.rb, line 27
def satisfied?
  @satisfied
end

Protected Instance Methods

elapsed() click to toggle source
# File lib/fake_servicebus/actions/receive_message.rb, line 32
def elapsed
  Time.now.to_f - @start_ts
end
expired?(queue, params) click to toggle source
# File lib/fake_servicebus/actions/receive_message.rb, line 36
def expired?(queue, params)
  wait_time_seconds = Integer params.fetch("timeout") { 0 }
  wait_time_seconds <= 0 ||
  elapsed >= wait_time_seconds ||
  elapsed >= MAX_WAIT_TIME_SECONDS
end