1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
require 'helper'
class TestLogger < Test::Unit::TestCase
context "with logger with mocked sender" do
setup do
Socket.stubs(:gethostname).returns('stubbed_hostname')
@logger = GELF::Logger.new
@sender = mock
@logger.instance_variable_set('@sender', @sender)
end
should "respond to #close" do
assert @logger.respond_to?(:close)
end
context "#add" do
# logger.add(Logger::INFO, 'Message')
should "implement add method with level and message from parameters, facility from defaults" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::INFO &&
hash['short_message'] == 'Message' &&
hash['facility'] == 'gelf-rb'
end
@logger.add(GELF::INFO, 'Message')
end
# logger.add(Logger::INFO, RuntimeError.new('Boom!'))
should "implement add method with level and exception from parameters, facility from defaults" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::INFO &&
hash['short_message'] == 'RuntimeError: Boom!' &&
hash['full_message'] =~ /^Backtrace/ &&
hash['facility'] == 'gelf-rb'
end
@logger.add(GELF::INFO, RuntimeError.new('Boom!'))
end
# logger.add(Logger::INFO) { 'Message' }
should "implement add method with level from parameter, message from block, facility from defaults" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::INFO &&
hash['short_message'] == 'Message' &&
hash['facility'] == 'gelf-rb'
end
@logger.add(GELF::INFO) { 'Message' }
end
# logger.add(Logger::INFO) { RuntimeError.new('Boom!') }
should "implement add method with level from parameter, exception from block, facility from defaults" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::INFO &&
hash['short_message'] == 'RuntimeError: Boom!' &&
hash['full_message'] =~ /^Backtrace/ &&
hash['facility'] == 'gelf-rb'
end
@logger.add(GELF::INFO) { RuntimeError.new('Boom!') }
end
# logger.add(Logger::INFO, 'Message', 'Facility')
should "implement add method with level, message and facility from parameters" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::INFO &&
hash['short_message'] == 'Message' &&
hash['facility'] == 'Facility'
end
@logger.add(GELF::INFO, 'Message', 'Facility')
end
# logger.add(Logger::INFO, RuntimeError.new('Boom!'), 'Facility')
should "implement add method with level, exception and facility from parameters" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::INFO &&
hash['short_message'] == 'RuntimeError: Boom!' &&
hash['full_message'] =~ /^Backtrace/ &&
hash['facility'] == 'Facility'
end
@logger.add(GELF::INFO, RuntimeError.new('Boom!'), 'Facility')
end
# logger.add(Logger::INFO, 'Facility') { 'Message' }
should "implement add method with level and facility from parameters, message from block" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::INFO &&
hash['short_message'] == 'Message' &&
hash['facility'] == 'Facility'
end
@logger.add(GELF::INFO, 'Facility') { 'Message' }
end
# logger.add(Logger::INFO, 'Facility') { RuntimeError.new('Boom!') }
should "implement add method with level and facility from parameters, exception from block" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::INFO &&
hash['short_message'] == 'RuntimeError: Boom!' &&
hash['full_message'] =~ /^Backtrace/ &&
hash['facility'] == 'Facility'
end
@logger.add(GELF::INFO, 'Facility') { RuntimeError.new('Boom!') }
end
end
GELF::Levels.constants.each do |const|
# logger.error "Argument #{ @foo } mismatch."
should "call add with level #{const} from method name, message from parameter" do
@logger.expects(:add).with(GELF.const_get(const), 'message')
@logger.__send__(const.downcase, 'message')
end
# logger.fatal { "Argument 'foo' not given." }
should "call add with level #{const} from method name, message from block" do
@logger.expects(:add).with(GELF.const_get(const), 'message')
@logger.__send__(const.downcase) { 'message' }
end
# logger.info('initialize') { "Initializing..." }
should "call add with level #{const} from method name, facility from parameter, message from block" do
@logger.expects(:add).with(GELF.const_get(const), 'message', 'facility')
@logger.__send__(const.downcase, 'facility') { 'message' }
end
should "respond to #{const.downcase}?" do
@logger.level = GELF.const_get(const) - 1
assert @logger.__send__(const.to_s.downcase + '?')
@logger.level = GELF.const_get(const)
assert @logger.__send__(const.to_s.downcase + '?')
@logger.level = GELF.const_get(const) + 1
assert !@logger.__send__(const.to_s.downcase + '?')
end
end
should "support Logger#<<" do
@logger.expects(:notify_with_level!).with do |level, hash|
level == GELF::UNKNOWN &&
hash['short_message'] == "Message"
end
@logger << "Message"
end
end
end
|