Newer
Older
define('NAME', 'Testlogger');
define('FORMAT', '%(level): %(message)');
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
class LoggerTest extends PHPUnit_Extensions_OutputTestCase {
function setUp() {
$this->logger = new Logger();
$this->logger->set_property('name', NAME);
$this->logger->set_format(FORMAT);
}
function assert_dumps($expected) {
$this->assertEquals($this->logger->dumps(), $expected);
}
function test_get_format() {
$this->assertEquals($this->logger->get_format(), FORMAT);
}
function test_get_level() {
$this->assertEquals($this->logger->get_level(), Logger::WARNING);
$this->assertEquals($this->logger->get_level_name(), 'WARNING');
}
/**
* @depends test_get_level
*/
function test_set_level() {
$this->logger->set_level('info');
$this->assertEquals($this->logger->get_level(), Logger::INFO);
$this->logger->set_level('DEBUG');
$this->assertEquals($this->logger->get_level(), Logger::DEBUG);
$this->logger->set_level('WaRnInG');
$this->assertEquals($this->logger->get_level(), Logger::WARNING);
$this->logger->set_level(Logger::ERROR);
$this->assertEquals($this->logger->get_level(), Logger::ERROR);
}
function test_format() {
$this->logger->error('test message');
$this->assert_dumps('ERROR: test message');
}
function test_set_property() {
$this->logger->set_property('name', 'Logger');
$this->assertEquals($this->logger->get_formatted_property('name'), 'Logger');
}
/**
* @depends test_format
*/
function test_clear() {
$this->logger->warning('test message');
$this->logger->clear();
$this->assert_dumps('');
}
/**
* @depends test_set_level
* @depends test_clear
*/
function test_process_level() {
$this->logger->info('test message');
$this->assert_dumps('');
$this->logger->warning('test message');
$this->assert_dumps('WARNING: test message');
$this->logger->critical('test message');
$this->assert_dumps("WARNING: test message\nCRITICAL: test message");
$this->logger->clear();
$this->logger->set_level('debug');
$this->logger->debug('test message');
$this->assert_dumps('DEBUG: test message');
}
function test_get_formatted_property() {
$this->assertEquals($this->logger->get_formatted_property('name'), NAME);
$this->assertEquals($this->logger->get_formatted_property('loglevel'), 'WARNING');
$this->assertRegExp('/^\d{2}-\d{2}-\d{4}$/',
$this->logger->get_formatted_property('date'));
$this->assertRegExp('/^\d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}$/',
$this->logger->get_formatted_property('datetime'));
$this->assertRegExp('/^\d{2}:\d{2}:\d{2}$/',
$this->logger->get_formatted_property('time'));
$this->setExpectedException('\InvalidArgumentException');
$this->logger->get_formatted_property('foo');
}
function test_dumps_property_format() {
$this->logger->warning('test message');
$this->logger->set_format('%(name): %(level): %(message)');
$this->assert_dumps(NAME.': WARNING: test message');
}
/**
* @depends test_process_level
*/
function test_dump() {
$this->logger->warning('test message');
$this->expectOutputString('WARNING: test message');
$this->logger->dump();
}
function test_handle_exception() {
$this->logger->handle_exception(new Exception('test message'));
$this->assertNotEquals($this->logger->dumps(), '');
}
function test_save() {
$this->logger->warning('test message');
$this->logger->save(LOGFILE);
$this->assertStringEqualsFile(LOGFILE, 'WARNING: test message');
$this->logger->warning('another test message');
$this->logger->save(LOGFILE);
$this->assertStringEqualsFile(LOGFILE, "WARNING: test message\nWARNING: another test message");
file_exists(LOGFILE) && unlink(LOGFILE);
}