lib/bunny_mock/channel.rb in bunny-mock-1.0.0 vs lib/bunny_mock/channel.rb in bunny-mock-1.1.0
- old
+ new
@@ -12,16 +12,10 @@
attr_reader :connection
# @return [Symbol] Current channel state
attr_reader :status
- # @return [Hash<String, BunnyMock::Exchange>] Exchanges created by this channel
- attr_reader :exchanges
-
- # @return [Hash<String, BunnyMock::Queue>] Queues created by this channel
- attr_reader :queues
-
##
# Create a new {BunnyMock::Channel} instance
#
# @param [BunnyMock::Session] connection Mocked session instance
# @param [Integer] id Channel identifier
@@ -104,13 +98,13 @@
# @return [BunnyMock::Exchange] Mocked exchange instance
# @api public
#
def exchange(name, opts = {})
- xchg = find_exchange(name) || Exchange.declare(self, name, opts)
+ xchg = @connection.find_exchange(name) || Exchange.declare(self, name, opts)
- register_exchange xchg
+ @connection.register_exchange xchg
end
##
# Mocks a fanout exchange
#
@@ -202,13 +196,13 @@
# @return [BunnyMock::Queue] Queue that was mocked or looked up
# @api public
#
def queue(name = '', opts = {})
- queue = find_queue(name) || Queue.new(self, name, opts)
+ queue = @connection.find_queue(name) || Queue.new(self, name, opts)
- register_queue queue
+ @connection.register_queue queue
end
##
# Create a new {BunnyMock::Queue} instance with no name
#
@@ -228,82 +222,74 @@
#
# Implementation
#
# @private
- def find_queue(name)
- @queues[name]
+ def deregister_queue(queue)
+ @connection.deregister_queue queue.name
end
# @private
- def register_queue(queue)
- @queues[queue.name] = queue
+ def deregister_exchange(xchg)
+ @connection.deregister_exchange xchg.name
end
# @private
- def deregister_queue(queue)
- @queues.delete queue.name
- end
-
- # @private
def queue_bind(queue, key, xchg)
- exchange = @exchanges[xchg] || exchange(xchg)
+ exchange = @connection.find_exchange xchg
+ raise NotFound.new "Exchange '#{xchg}' was not found" unless exchange
+
exchange.add_route key, queue
end
# @private
def queue_unbind(key, xchg)
- exchange = @exchanges[xchg] || exchange(xchg)
+ exchange = @connection.find_exchange xchg
+ raise NotFound.new "Exchange '#{xchg}' was not found" unless exchange
+
exchange.remove_route key
end
# @private
def xchg_bound_to?(receiver, key, name)
- source = @exchanges[name] || exchange(name)
+ source = @connection.find_exchange name
+ raise NotFound.new "Exchange '#{name}' was not found" unless source
+
source.has_binding? receiver, routing_key: key
end
# @private
def xchg_has_binding?(key, xchg)
- exchange = @exchanges[xchg] || exchange(xchg)
+ exchange = @connection.find_exchange xchg
+ raise NotFound.new "Exchange '#{xchg}' was not found" unless exchange
+
exchange.has_binding? key
end
# @private
- def find_exchange(name)
- @exchanges[name]
- end
-
- # @private
- def register_exchange(xchg)
- @exchanges[xchg.name] = xchg
- end
-
- # @private
- def deregister_exchange(xchg)
- @exchanges.delete xchg.name
- end
-
- # @private
def xchg_bind(receiver, routing_key, name)
- source = @exchanges[name] || exchange(name)
+ source = @connection.find_exchange name
+ raise NotFound.new "Exchange '#{name}' was not found" unless source
+
source.add_route routing_key, receiver
end
# @private
def xchg_unbind(routing_key, name)
- source = @exchanges[name] || exchange(name)
+ source = @connection.find_exchange name
+
+ raise NotFound.new "Exchange '#{name}' was not found" unless source
source.remove_route routing_key
end
end
end