Sha256: 0a67add783ac8c08735d8aa8f8a9e5406feb6bc1cfc7af33009a58337aa55bc8

Contents?: true

Size: 1.31 KB

Versions: 68

Compression:

Stored size: 1.31 KB

Contents

# encoding: utf-8

require "spec_helper"

class TestLogger
  def log(message)
    message
  end

  alias_method :debug, :log
  alias_method :info,  :log
  alias_method :error, :log
  alias_method :fatal, :log
end

class LoggingTestClass
  attr_accessor :logging

  def client
    OpenStruct.new(:logger => TestLogger.new)
  end

  include AMQ::Client::Logging
end

describe AMQ::Client::Logging do
  # We have to use Kernel#load so extensions to the
  # Logging module from client.rb will be overridden.
  before(:all) do
    load "amq/client/logging.rb"

    AMQ::Client::Logging.logging = true
  end

  after(:all) do
    AMQ::Client::Logging.logging = false
  end

  context "including to an incompatible class" do
    it "should raise an NotImplementedError if the class doesn't define method client" do
      lambda {
        Class.new { include AMQ::Client::Logging }
      }.should raise_error(NotImplementedError)
    end
  end

  context "including to a compatible class" do
    subject { LoggingTestClass.new }

    it "should be able to log via #client#logger of given class" do
      subject.logging = true
      subject.debug("message").should eql("message")
    end

    it "should not log anything if subject#logging is false" do
      subject.logging = false
      subject.debug("message").should be_nil
    end
  end
end

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
amq-client-1.0.4 spec/unit/client/logging_spec.rb
amq-client-1.0.3 spec/unit/client/logging_spec.rb
amq-client-1.1.0.pre1 spec/unit/client/logging_spec.rb
amq-client-1.0.2 spec/unit/client/logging_spec.rb
amq-client-1.0.1 spec/unit/client/logging_spec.rb
amq-client-1.0.0 spec/unit/client/logging_spec.rb
amq-client-0.9.12 spec/unit/client/logging_spec.rb
amq-client-0.9.11 spec/unit/client/logging_spec.rb
amq-client-0.9.10 spec/unit/client/logging_spec.rb
amq-client-0.9.9 spec/unit/client/logging_spec.rb
amq-client-0.9.8 spec/unit/client/logging_spec.rb
amq-client-0.9.7 spec/unit/client/logging_spec.rb
amq-client-0.9.6 spec/unit/client/logging_spec.rb
amq-client-0.9.5 spec/unit/client/logging_spec.rb
amq-client-0.9.4 spec/unit/client/logging_spec.rb
amq-client-1.0.0.pre2 spec/unit/client/logging_spec.rb
amq-client-0.9.3 spec/unit/client/logging_spec.rb
amq-client-1.0.0.pre1 spec/unit/client/logging_spec.rb
amq-client-0.9.2 spec/unit/client/logging_spec.rb
amq-client-0.9.1 spec/unit/client/logging_spec.rb