aboutsummaryrefslogblamecommitdiffstats
path: root/activesupport/test/buffered_logger_test.rb
blob: 7d557150849dcf6aa39aa19343cd4872ad9f84ff (plain) (tree)








































                                                                 
require File.dirname(__FILE__) + '/abstract_unit'
require 'stringio'

class BufferedLoggerTest < Test::Unit::TestCase
  def setup
    @message = "A debug message"
    @output  = StringIO.new
    @logger  = ActiveSupport::BufferedLogger.new(@output)
  end
  
  def test_should_log_debugging_message_when_debugging
    @logger.level = Logger::DEBUG
    @logger.add(Logger::DEBUG, @message)
    assert @output.string.include?(@message)
  end

  def test_should_not_log_debug_messages_when_log_level_is_info
    @logger.level = Logger::INFO
    @logger.add(Logger::DEBUG, @message)
    assert ! @output.string.include?(@message)
  end

  def test_should_add_message_passed_as_block_when_using_add
    @logger.level = Logger::INFO
    @logger.add(Logger::INFO) {@message}
    assert @output.string.include?(@message)
  end
  
  def test_should_add_message_passed_as_block_when_using_shortcut
    @logger.level = Logger::INFO
    @logger.info {@message}
    assert @output.string.include?(@message)
  end
  
  def test_should_not_evaluate_block_if_message_wont_be_logged
    @logger.level = Logger::INFO
    evaluated = false
    @logger.add(Logger::DEBUG) {evaluated = true}
    assert evaluated == false  
  end
end