diff --git a/lib/amqp/failover.rb b/lib/amqp/failover.rb index 1a7b53d..8719a74 100644 --- a/lib/amqp/failover.rb +++ b/lib/amqp/failover.rb @@ -24,9 +24,12 @@ module AMQP @options = default_options.merge(opts) end - # pluggable logger specifically for tracking failover and fallbacks - def self.logger - @logger ||= Logger.new + class << self + # pluggable logger specifically for tracking failover and fallbacks + def logger + @logger ||= Logger.new + end + attr_writer :logger end def default_options diff --git a/spec/integration/a_simple_spec.rb b/spec/integration/basic_spec.rb similarity index 95% rename from spec/integration/a_simple_spec.rb rename to spec/integration/basic_spec.rb index 541d14e..ea0fbff 100644 --- a/spec/integration/a_simple_spec.rb +++ b/spec/integration/basic_spec.rb @@ -7,7 +7,7 @@ require 'amqp' require 'amqp/server' require 'server_helper' -describe "A simple AMQP connection with FailoverClient loaded" do +describe "Basic AMQP connection with FailoverClient loaded" do after(:all) do ServerHelper.clear_logs diff --git a/spec/integration/full_failover_spec.rb b/spec/integration/failover_spec.rb similarity index 78% rename from spec/integration/full_failover_spec.rb rename to spec/integration/failover_spec.rb index 2b96936..a0eaddc 100644 --- a/spec/integration/full_failover_spec.rb +++ b/spec/integration/failover_spec.rb @@ -4,11 +4,18 @@ $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__)) require 'spec_helper' require 'amqp/server' require 'server_helper' +require 'logger_helper' describe "Full Failover support of AMQP gem" do + before(:all) do + @flog = LoggerHelper.new + AMQP::Failover.logger = @flog + end + after(:all) do ServerHelper.clear_logs + AMQP::Failover.logger = nil end it "should be able to connect" do @@ -41,9 +48,14 @@ describe "Full Failover support of AMQP gem" do serv1.stop EM.add_timer(0.1) { conn.should be_connected + [:error, :info].each do |i| + @flog.send("#{i}_log").should have(1).item + @flog.send("#{i}_log")[0][0].should match(/connect to or lost connection.+25672.+attempting connection.+35672/i) + end conn.settings[:port].should == 35672 serv1.log.should have(3).items serv2.log.should have(3).items + conn.close EM.add_timer(0.1) { serv2.stop EM.stop diff --git a/spec/logger_helper.rb b/spec/logger_helper.rb new file mode 100644 index 0000000..48022b9 --- /dev/null +++ b/spec/logger_helper.rb @@ -0,0 +1,18 @@ +# encoding: utf-8 + +class LoggerHelper + + attr_accessor :error_log + attr_accessor :info_log + + def info(*args) + @info_log ||= [] + @info_log << args + end + + def error(*args) + @error_log ||= [] + @error_log << args + end + +end