Sha256: 7c22bc991bf4bf2b6dc973e1ae975f1e01b6235eed0175da35035305abf93b02
Contents?: true
Size: 1.83 KB
Versions: 1
Compression:
Stored size: 1.83 KB
Contents
class TestRunner include MessageDriver::Client include RSpec::Matchers attr_accessor :raised_error attr_accessor :current_feature_file attr_accessor :broker_name def broker_name @broker_name ||= MessageDriver::Broker::DEFAULT_BROKER_NAME end def run_config_code(src) instance_eval(src, current_feature_file) end def run_test_code(src) begin instance_eval(src, current_feature_file) rescue => e @raised_error = e end end def fetch_messages(destination_name) destination = fetch_destination(destination_name) pause_if_needed result = [] loop do msg = destination.pop_message if msg.nil? break else result << msg end end result end def purge_destination(destination_name) destination = fetch_destination(destination_name) if destination.respond_to? :purge destination.purge else fetch_messages(destination) end end def fetch_destination(destination) case destination when String, Symbol MessageDriver::Client[self.broker_name].find_destination(destination) when MessageDriver::Destination::Base destination else raise "didn't understand destination #{destination.inspect}" end end def fetch_current_adapter_context MessageDriver::Client[self.broker_name].current_adapter_context end def publish_table_to_destination(destination, table) table.hashes.each do |msg| destination.publish(msg[:body], msg[:headers]||{}, msg[:properties]||{}) end end def pause_if_needed(seconds=0.1) seconds *= 10 if ENV['CI'] == 'true' case BrokerConfig.current_adapter when :in_memory else sleep seconds end end end module KnowsMyTestRunner def test_runner @test_runner ||= TestRunner.new end end World(KnowsMyTestRunner)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
message-driver-0.4.0 | features/support/test_runner.rb |