class FakeServiceBus::Queues

Attributes

database[R]
queue_factory[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/fake_servicebus/queues.rb, line 9
def initialize(options = {})
  @queue_factory = options.fetch(:queue_factory)
  @database = options.fetch(:database)
  @database.load
end

Public Instance Methods

create(name, options = {}) click to toggle source
# File lib/fake_servicebus/queues.rb, line 15
def create(name, options = {})
  return database[name] if database[name]
  queue = queue_factory.new(options.merge(:name=>name))
  database[name] = queue
end
delete(name, options = {}) click to toggle source
# File lib/fake_servicebus/queues.rb, line 21
def delete(name, options = {})
  if database[name]
    database.delete(name)
  else
    fail NonExistentQueue, name
  end
end
expire() click to toggle source
# File lib/fake_servicebus/queues.rb, line 65
def expire
  transaction do
    database.each { |name, queue| queue.expire }
  end
end
get(name, options = {}) click to toggle source
# File lib/fake_servicebus/queues.rb, line 37
def get(name, options = {})
  if (db = database[name])
    db
  else
    fail NonExistentQueue, name
  end
end
list(options = {}) click to toggle source
# File lib/fake_servicebus/queues.rb, line 29
def list(options = {})
  if (prefix = options["QueueNamePrefix"])
    database.select { |name, queue| name.start_with?(prefix) }.values
  else
    database.values
  end
end
reset() click to toggle source
# File lib/fake_servicebus/queues.rb, line 55
def reset
  database.reset
end
save(queue) click to toggle source
# File lib/fake_servicebus/queues.rb, line 51
def save(queue)
  database[queue.name] = queue
end
timeout_messages!() click to toggle source
# File lib/fake_servicebus/queues.rb, line 59
def timeout_messages!
  transaction do
    database.each { |name,queue| queue.timeout_messages! }
  end
end
transaction() { || ... } click to toggle source
# File lib/fake_servicebus/queues.rb, line 45
def transaction
  database.transaction do
    yield
  end
end