test_logger.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. require_once 'logger.php';
  3. use Minimalistic\Logger;
  4. define('NAME', 'Testlogger');
  5. define('FORMAT', '%(level): %(message)');
  6. class LoggerTest extends PHPUnit_Extensions_OutputTestCase {
  7. function setUp() {
  8. $this->logger = new Logger();
  9. $this->logger->set_property('name', NAME);
  10. $this->logger->set_format(FORMAT);
  11. }
  12. function assert_dumps($expected) {
  13. $this->assertEquals($this->logger->dumps(), $expected);
  14. }
  15. function test_get_format() {
  16. $this->assertEquals($this->logger->get_format(), FORMAT);
  17. }
  18. function test_get_level() {
  19. $this->assertEquals($this->logger->get_level(), Logger::WARNING);
  20. $this->assertEquals($this->logger->get_level_name(), 'WARNING');
  21. }
  22. /**
  23. * @depends test_get_level
  24. */
  25. function test_set_level() {
  26. $this->logger->set_level('info');
  27. $this->assertEquals($this->logger->get_level(), Logger::INFO);
  28. $this->logger->set_level('DEBUG');
  29. $this->assertEquals($this->logger->get_level(), Logger::DEBUG);
  30. $this->logger->set_level('WaRnInG');
  31. $this->assertEquals($this->logger->get_level(), Logger::WARNING);
  32. $this->logger->set_level(Logger::ERROR);
  33. $this->assertEquals($this->logger->get_level(), Logger::ERROR);
  34. }
  35. function test_format() {
  36. $this->logger->error('test message');
  37. $this->assert_dumps('ERROR: test message');
  38. }
  39. function test_set_property() {
  40. $this->logger->set_property('name', 'Logger');
  41. $this->assertEquals($this->logger->get_formatted_property('name'), 'Logger');
  42. }
  43. /**
  44. * @depends test_format
  45. */
  46. function test_clear() {
  47. $this->logger->warning('test message');
  48. $this->logger->clear();
  49. $this->assert_dumps('');
  50. }
  51. /**
  52. * @depends test_set_level
  53. * @depends test_clear
  54. */
  55. function test_process_level() {
  56. $this->logger->info('test message');
  57. $this->assert_dumps('');
  58. $this->logger->warning('test message');
  59. $this->assert_dumps('WARNING: test message');
  60. $this->logger->critical('test message');
  61. $this->assert_dumps("WARNING: test message\nCRITICAL: test message");
  62. $this->logger->clear();
  63. $this->logger->set_level('debug');
  64. $this->logger->debug('test message');
  65. $this->assert_dumps('DEBUG: test message');
  66. }
  67. function test_get_formatted_property() {
  68. $this->assertEquals($this->logger->get_formatted_property('name'), NAME);
  69. $this->assertEquals($this->logger->get_formatted_property('loglevel'), 'WARNING');
  70. $this->assertRegExp('/^\d{2}-\d{2}-\d{4}$/',
  71. $this->logger->get_formatted_property('date'));
  72. $this->assertRegExp('/^\d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}$/',
  73. $this->logger->get_formatted_property('datetime'));
  74. $this->assertRegExp('/^\d{2}:\d{2}:\d{2}$/',
  75. $this->logger->get_formatted_property('time'));
  76. $this->setExpectedException('\InvalidArgumentException');
  77. $this->logger->get_formatted_property('foo');
  78. }
  79. function test_dumps_property_format() {
  80. $this->logger->warning('test message');
  81. $this->logger->set_format('%(name): %(level): %(message)');
  82. $this->assert_dumps(NAME.': WARNING: test message');
  83. }
  84. /**
  85. * @depends test_process_level
  86. */
  87. function test_dump() {
  88. $this->logger->warning('test message');
  89. $this->expectOutputString('WARNING: test message');
  90. $this->logger->dump();
  91. }
  92. function test_handle_exception() {
  93. $this->logger->handle_exception(new Exception('test message'));
  94. $this->assertNotEquals($this->logger->dumps(), '');
  95. }
  96. }
  97. ?>