2
0

SocketHandlerTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * @author Pablo de Leon Belloc <pablolb@gmail.com>
  4. */
  5. namespace Monolog\Handler;
  6. use Monolog\Handler\SocketHandler\MockSocket;
  7. use Monolog\Handler\SocketHandler\Socket;
  8. use Monolog\Handler\SocketHandler\PersistentSocket;
  9. use Monolog\TestCase;
  10. use Monolog\Logger;
  11. class SocketHandlerTest extends TestCase
  12. {
  13. public function testWrite()
  14. {
  15. $socket = new MockSocket('localhost');
  16. $handler = new SocketHandler('localhost');
  17. $handler->setSocket($socket);
  18. $handler->setFormatter($this->getIdentityFormatter());
  19. $handler->handle($this->getRecord(Logger::WARNING, 'test'));
  20. $handler->handle($this->getRecord(Logger::WARNING, 'test2'));
  21. $handler->handle($this->getRecord(Logger::WARNING, 'test3'));
  22. $handle = $socket->getResource();
  23. fseek($handle, 0);
  24. $this->assertEquals('testtest2test3', fread($handle, 100));
  25. }
  26. public function testCloseClosesNonPersistentSocket()
  27. {
  28. $socket = new Socket('localhost');
  29. $res = fopen('php://memory', 'a');
  30. $socket->setResource($res);
  31. $handler = new SocketHandler('localhost');
  32. $handler->setSocket($socket);
  33. $handler->close();
  34. $this->assertFalse($socket->isConnected());
  35. }
  36. public function testCloseDoesNotClosePersistentSocket()
  37. {
  38. $socket = new PersistentSocket('localhost');
  39. $res = fopen('php://memory', 'a');
  40. $socket->setResource($res);
  41. $handler = new SocketHandler('localhost');
  42. $handler->setSocket($socket);
  43. $handler->close();
  44. $this->assertTrue($socket->isConnected());
  45. }
  46. }