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
|
require File.expand_path('../../../../spec_helper', __FILE__)
require File.expand_path('../../fixtures/common', __FILE__)
describe "Logger::Application#log" do
before :each do
@file_path = tmp("test_log.log")
@log_file = File.open(@file_path, "w+")
@app = LoggerSpecs::TestApp.new("TestApp", @log_file)
@app.start
end
after :each do
@log_file.close unless @log_file.closed?
rm_r @file_path
end
it "logs a message" do
@app.log(Logger::WARN, "Test message")
@log_file.rewind
message = @log_file.readlines.last
LoggerSpecs::strip_date(message).should == "WARN -- TestApp: Test message\n"
end
it "receives a severity" do
@app.log(Logger::INFO, "Info message")
@app.log(Logger::DEBUG, "Debug message")
@app.log(Logger::WARN, "Warn message")
@app.log(Logger::ERROR, "Error message")
@app.log(Logger::FATAL, "Fatal message")
@log_file.rewind
messages = @log_file.readlines[3..-1] # remove default messages
LoggerSpecs::strip_date(messages[0]).should == "INFO -- TestApp: Info message\n"
LoggerSpecs::strip_date(messages[1]).should == "DEBUG -- TestApp: Debug message\n"
LoggerSpecs::strip_date(messages[2]).should == "WARN -- TestApp: Warn message\n"
LoggerSpecs::strip_date(messages[3]).should == "ERROR -- TestApp: Error message\n"
LoggerSpecs::strip_date(messages[4]).should == "FATAL -- TestApp: Fatal message\n"
end
it "uses app name for Application Name" do
@app.log(Logger::INFO, "Info message")
@log_file.rewind
test_message = @log_file.readlines.last
Regexp.new(/TestApp/).should =~ LoggerSpecs::strip_date(test_message)
end
it "receives a block and calls it if message is nil" do
temp = 0
@app.log(Logger::INFO, nil) { temp = 1 }
temp.should == 1
end
end
describe "Logger::Application#log=" do
before :each do
@file_path = tmp("test_log.log")
@log_file = File.open(@file_path, "w+")
@app = LoggerSpecs::TestApp.new("TestApp", @log_file)
@app.start
end
after :all do
@log_file.close
rm_r @file_path
end
it "sets the log device" do
regex = /STDERR Message/
@app.log = STDERR
lambda { @app.log(Logger::WARN, "STDERR Message") }.should output_to_fd(regex, STDERR)
end
end
|