RotatingFileHandlerTest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace Test\Michel\Log;
  3. use Michel\Log\Handler\RotatingFileHandler;
  4. use Michel\UniTester\TestCase;
  5. use Psr\Log\LogLevel;
  6. class RotatingFileHandlerTest extends TestCase
  7. {
  8. protected function setUp(): void
  9. {
  10. // TODO: Implement setUp() method.
  11. }
  12. protected function tearDown(): void
  13. {
  14. // TODO: Implement tearDown() method.
  15. }
  16. protected function execute(): void
  17. {
  18. $this->testRotation();
  19. }
  20. private function testRotation()
  21. {
  22. $dir = sys_get_temp_dir() . '/rotating_logs';
  23. if (!file_exists($dir)) {
  24. mkdir($dir);
  25. }
  26. $filename = $dir . '/app.log';
  27. $handler = new RotatingFileHandler($filename);
  28. $handler->handle([
  29. 'level' => LogLevel::INFO,
  30. 'message' => 'rotating message',
  31. 'timestamp' => '2023-01-01 00:00:00'
  32. ]);
  33. $date = date('Y-m-d');
  34. $expectedFile = $dir . '/app-' . $date . '.log';
  35. $this->assertTrue(file_exists($expectedFile), 'Log file should exist');
  36. $content = file_get_contents($expectedFile);
  37. $this->assertStringContains($content, 'rotating message');
  38. // Cleanup
  39. if (file_exists($expectedFile)) {
  40. unlink($expectedFile);
  41. }
  42. rmdir($dir);
  43. }
  44. }