module Tochtli::Test::Controller
Public Instance Methods
after_teardown()
click to toggle source
Calls superclass method
# File lib/tochtli/test/controller.rb, line 37 def after_teardown self.class.controller_class.stop super end
before_setup()
click to toggle source
Calls superclass method
Tochtli::Test::Helpers#before_setup
# File lib/tochtli/test/controller.rb, line 28 def before_setup super @cache = Object.const_defined?(:ActiveSupport) ? ActiveSupport::Cache::MemoryStore.new : Tochtli::Test::MemoryCache.new @logger = Tochtli.logger self.class.controller_class.setup(@connection, @cache, @logger) @dispatcher = self.class.controller_class.dispatcher @message_index = 0 end
publish(message)
click to toggle source
# File lib/tochtli/test/controller.rb, line 42 def publish(message) @message_index += 1 delivery_info = TestDeliveryInfo.new(message.routing_key) properties = TestMessageProperties.new("test.reply", @message_index) payload = message.to_json @message, @reply = nil unless @dispatcher.process_message(delivery_info, properties, payload, {}) if (reply = @connection.publications.first) && reply[:message].is_a?(Tochtli::ErrorMessage) raise "Process error: #{reply[:message].message}" else raise RoutingNotFound, "Message #{message.class.name} not processed by #{self.class.controller_class} - #{message.inspect}." end end reply = @connection.publications.first if reply && reply[:routing_key] == "test.reply" && reply[:correlation_id] == @message_index @connection.publications.shift @reply = reply[:message] end end