2
0

StreamHandlerTest.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace Test\Michel\Log;
  3. use Michel\Log\Handler\StreamHandler;
  4. use Michel\UniTester\TestCase;
  5. use Psr\Log\LogLevel;
  6. class StreamHandlerTest 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->testWriteToStream();
  19. $this->testWriteToFile();
  20. }
  21. private function testWriteToStream()
  22. {
  23. $stream = fopen('php://memory', 'a+');
  24. $handler = new StreamHandler($stream);
  25. $handler->handle([
  26. 'level' => LogLevel::INFO,
  27. 'message' => 'test message',
  28. 'timestamp' => '2023-01-01 00:00:00'
  29. ]);
  30. rewind($stream);
  31. $content = stream_get_contents($stream);
  32. $this->assertStringContains($content, 'test message');
  33. $this->assertStringContains($content, '[INFO]');
  34. }
  35. private function testWriteToFile()
  36. {
  37. $file = sys_get_temp_dir() . '/test_stream_handler.log';
  38. if (file_exists($file)) {
  39. unlink($file);
  40. }
  41. $handler = new StreamHandler($file);
  42. $handler->handle([
  43. 'level' => LogLevel::ERROR,
  44. 'message' => 'error message',
  45. 'timestamp' => '2023-01-01 00:00:00'
  46. ]);
  47. $this->assertTrue(file_exists($file), 'File should exist');
  48. $content = file_get_contents($file);
  49. $this->assertStringContains($content, 'error message');
  50. $this->assertStringContains($content, '[ERROR]');
  51. unlink($file);
  52. }
  53. }