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