delphimvcframework/lib/luadelphibinding/unittests/Win32/Debug/Neopallium-lualogging-66d99e6/tests/testFile.lua
2013-10-31 09:00:06 +00:00

68 lines
1.8 KiB
Lua

local GLOBAL_OS_DATE = os.date
local GLOBAL_IO_OPEN = io.open
local mock = {
date = nil,
handle = {}
}
io.open = function (file, mode)
if (not string.find(file, "^__TEST*")) then
return GLOBAL_IO_OPEN(file, mode)
end
mock.handle[file] = {}
mock.handle[file].lines = {}
mock.handle[file].mode = mode
return {
setvbuf = function (_, s)
mock.handle[file].setvbuf = s
end,
write = function (_, s)
table.insert(mock.handle[file].lines, s)
end,
}
end
os.date = function (...)
return mock.date
end
require "logging.file"
mock.date = "2008-01-01"
local logger = logging.file("__TEST%s.log", "%Y-%m-%d")
assert(mock.handle["__TEST"..mock.date..".log"] == nil)
logger:info("logging.file test")
assert(mock.handle["__TEST"..mock.date..".log"].mode == "a")
assert(#mock.handle["__TEST"..mock.date..".log"].lines == 1)
assert(mock.handle["__TEST"..mock.date..".log"].setvbuf == "line")
assert(mock.handle["__TEST"..mock.date..".log"].lines[1] == "2008-01-01 INFO logging.file test\n")
mock.date = "2008-01-02"
logger:debug("debugging...")
logger:error("error!")
assert(mock.handle["__TEST"..mock.date..".log"].mode == "a")
assert(#mock.handle["__TEST"..mock.date..".log"].lines == 2)
assert(mock.handle["__TEST"..mock.date..".log"].setvbuf == "line")
assert(mock.handle["__TEST"..mock.date..".log"].lines[1] == "2008-01-02 DEBUG debugging...\n")
assert(mock.handle["__TEST"..mock.date..".log"].lines[2] == "2008-01-02 ERROR error!\n")
mock.date = "2008-01-03"
logger:info({id = "1"})
assert(mock.handle["__TEST"..mock.date..".log"].mode == "a")
assert(#mock.handle["__TEST"..mock.date..".log"].lines == 1)
assert(mock.handle["__TEST"..mock.date..".log"].setvbuf == "line")
assert(mock.handle["__TEST"..mock.date..".log"].lines[1] == '2008-01-03 INFO {id = "1"}\n')
os.date = GLOBAL_OS_DATE
io.open = GLOBAL_IO_OPEN