diff options
Diffstat (limited to 'tests')
78 files changed, 1616 insertions, 1533 deletions
diff --git a/tests/Monolog/ErrorHandlerTest.php b/tests/Monolog/ErrorHandlerTest.php index a9a3f30..7b3ba82 100644 --- a/tests/Monolog/ErrorHandlerTest.php +++ b/tests/Monolog/ErrorHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -17,10 +17,10 @@ class ErrorHandlerTest extends \PHPUnit_Framework_TestCase { public function testHandleError() { - $logger = new Logger('test', array($handler = new TestHandler)); + $logger = new Logger('test', [$handler = new TestHandler]); $errHandler = new ErrorHandler($logger); - $errHandler->registerErrorHandler(array(E_USER_NOTICE => Logger::EMERGENCY), false); + $errHandler->registerErrorHandler([E_USER_NOTICE => Logger::EMERGENCY], false); trigger_error('Foo', E_USER_ERROR); $this->assertCount(1, $handler->getRecords()); $this->assertTrue($handler->hasErrorRecords()); @@ -28,4 +28,38 @@ class ErrorHandlerTest extends \PHPUnit_Framework_TestCase $this->assertCount(2, $handler->getRecords()); $this->assertTrue($handler->hasEmergencyRecords()); } + + public function testHandleException() + { + $logger = new Logger('test', [$handler = new TestHandler]); + $errHandler = new ErrorHandler($logger); + + $errHandler->registerExceptionHandler(['Monolog\CustomTestException' => Logger::ALERT, 'Throwable' => Logger::WARNING], false); + + try { + throw new CustomCustomException(); + $this->assertCount(1, $handler->getRecords()); + $this->assertTrue($handler->hasAlertRecords()); + } catch (\Throwable $e) { + } + try { + throw new CustomTestException(); + $this->assertCount(2, $handler->getRecords()); + $this->assertTrue($handler->hasAlertRecords()); + } catch (\Throwable $e) { + } + try { + throw new RuntimeException(); + $this->assertCount(3, $handler->getRecords()); + $this->assertTrue($handler->hasWarningRecords()); + } catch (\Throwable $e) { + } + } +} + +class CustomTestException extends \Exception +{ +} +class CustomCustomException extends CustomTestException +{ } diff --git a/tests/Monolog/Formatter/ChromePHPFormatterTest.php b/tests/Monolog/Formatter/ChromePHPFormatterTest.php index 71c4204..08a8e1b 100644 --- a/tests/Monolog/Formatter/ChromePHPFormatterTest.php +++ b/tests/Monolog/Formatter/ChromePHPFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -21,29 +21,29 @@ class ChromePHPFormatterTest extends \PHPUnit_Framework_TestCase public function testDefaultFormat() { $formatter = new ChromePHPFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('ip' => '127.0.0.1'), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['ip' => '127.0.0.1'], 'message' => 'log', - ); + ]; $message = $formatter->format($record); $this->assertEquals( - array( + [ 'meh', - array( + [ 'message' => 'log', - 'context' => array('from' => 'logger'), - 'extra' => array('ip' => '127.0.0.1'), - ), + 'context' => ['from' => 'logger'], + 'extra' => ['ip' => '127.0.0.1'], + ], 'unknown', 'error', - ), + ], $message ); } @@ -54,29 +54,29 @@ class ChromePHPFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithFileAndLine() { $formatter = new ChromePHPFormatter(); - $record = array( + $record = [ 'level' => Logger::CRITICAL, 'level_name' => 'CRITICAL', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('ip' => '127.0.0.1', 'file' => 'test', 'line' => 14), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['ip' => '127.0.0.1', 'file' => 'test', 'line' => 14], 'message' => 'log', - ); + ]; $message = $formatter->format($record); $this->assertEquals( - array( + [ 'meh', - array( + [ 'message' => 'log', - 'context' => array('from' => 'logger'), - 'extra' => array('ip' => '127.0.0.1'), - ), + 'context' => ['from' => 'logger'], + 'extra' => ['ip' => '127.0.0.1'], + ], 'test : 14', 'error', - ), + ], $message ); } @@ -87,25 +87,25 @@ class ChromePHPFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithoutContext() { $formatter = new ChromePHPFormatter(); - $record = array( + $record = [ 'level' => Logger::DEBUG, 'level_name' => 'DEBUG', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => [], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; $message = $formatter->format($record); $this->assertEquals( - array( + [ 'meh', 'log', 'unknown', 'log', - ), + ], $message ); } @@ -116,42 +116,42 @@ class ChromePHPFormatterTest extends \PHPUnit_Framework_TestCase public function testBatchFormatThrowException() { $formatter = new ChromePHPFormatter(); - $records = array( - array( + $records = [ + [ 'level' => Logger::INFO, 'level_name' => 'INFO', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => [], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ), - array( + ], + [ 'level' => Logger::WARNING, 'level_name' => 'WARNING', 'channel' => 'foo', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => [], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log2', - ), - ); + ], + ]; $this->assertEquals( - array( - array( + [ + [ 'meh', 'log', 'unknown', 'info', - ), - array( + ], + [ 'foo', 'log2', 'unknown', 'warn', - ), - ), + ], + ], $formatter->formatBatch($records) ); } diff --git a/tests/Monolog/Formatter/ElasticaFormatterTest.php b/tests/Monolog/Formatter/ElasticaFormatterTest.php index 90cc48d..8e88e69 100644 --- a/tests/Monolog/Formatter/ElasticaFormatterTest.php +++ b/tests/Monolog/Formatter/ElasticaFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -30,24 +30,24 @@ class ElasticaFormatterTest extends \PHPUnit_Framework_TestCase public function testFormat() { // test log message - $msg = array( + $msg = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => ['foo' => 7, 'bar', 'class' => new \stdClass], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; // expected values $expected = $msg; $expected['datetime'] = '1970-01-01T00:00:00.000000+00:00'; - $expected['context'] = array( - 'class' => '[object] (stdClass: {})', + $expected['context'] = [ + 'class' => ['stdClass' => []], 'foo' => 7, 0 => 'bar', - ); + ]; // format log message $formatter = new ElasticaFormatter('my_index', 'doc_type'); diff --git a/tests/Monolog/Formatter/FlowdockFormatterTest.php b/tests/Monolog/Formatter/FlowdockFormatterTest.php index 1b2fd97..f922d53 100644 --- a/tests/Monolog/Formatter/FlowdockFormatterTest.php +++ b/tests/Monolog/Formatter/FlowdockFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Formatter; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; class FlowdockFormatterTest extends TestCase { @@ -24,14 +24,14 @@ class FlowdockFormatterTest extends TestCase $formatter = new FlowdockFormatter('test_source', 'source@test.com'); $record = $this->getRecord(); - $expected = array( + $expected = [ 'source' => 'test_source', 'from_address' => 'source@test.com', 'subject' => 'in test_source: WARNING - test', 'content' => 'test', - 'tags' => array('#logs', '#warning', '#test'), + 'tags' => ['#logs', '#warning', '#test'], 'project' => 'test_source', - ); + ]; $formatted = $formatter->format($record); $this->assertEquals($expected, $formatted['flowdock']); @@ -43,10 +43,10 @@ class FlowdockFormatterTest extends TestCase public function testFormatBatch() { $formatter = new FlowdockFormatter('test_source', 'source@test.com'); - $records = array( + $records = [ $this->getRecord(Logger::WARNING), $this->getRecord(Logger::DEBUG), - ); + ]; $formatted = $formatter->formatBatch($records); $this->assertArrayHasKey('flowdock', $formatted[0]); diff --git a/tests/Monolog/Formatter/FluentdFormatterTest.php b/tests/Monolog/Formatter/FluentdFormatterTest.php index 622b2ba..0be8d8f 100644 --- a/tests/Monolog/Formatter/FluentdFormatterTest.php +++ b/tests/Monolog/Formatter/FluentdFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Formatter; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; class FluentdFormatterTest extends TestCase { @@ -36,7 +36,7 @@ class FluentdFormatterTest extends TestCase public function testFormat() { $record = $this->getRecord(Logger::WARNING); - $record['datetime'] = new \DateTime("@0"); + $record['datetime'] = new \DateTimeImmutable("@0"); $formatter = new FluentdFormatter(); $this->assertEquals( @@ -51,7 +51,7 @@ class FluentdFormatterTest extends TestCase public function testFormatWithTag() { $record = $this->getRecord(Logger::ERROR); - $record['datetime'] = new \DateTime("@0"); + $record['datetime'] = new \DateTimeImmutable("@0"); $formatter = new FluentdFormatter(true); $this->assertEquals( diff --git a/tests/Monolog/Formatter/GelfMessageFormatterTest.php b/tests/Monolog/Formatter/GelfMessageFormatterTest.php index e6bd309..897aa81 100644 --- a/tests/Monolog/Formatter/GelfMessageFormatterTest.php +++ b/tests/Monolog/Formatter/GelfMessageFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -28,15 +28,15 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase public function testDefaultFormatter() { $formatter = new GelfMessageFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => [], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; $message = $formatter->format($record); @@ -63,15 +63,15 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithFileAndLine() { $formatter = new GelfMessageFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('file' => 'test', 'line' => 14), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['file' => 'test', 'line' => 14], 'message' => 'log', - ); + ]; $message = $formatter->format($record); @@ -87,10 +87,10 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatInvalidFails() { $formatter = new GelfMessageFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', - ); + ]; $formatter->format($record); } @@ -101,15 +101,15 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithContext() { $formatter = new GelfMessageFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['key' => 'pair'], 'message' => 'log', - ); + ]; $message = $formatter->format($record); @@ -138,19 +138,19 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithContextContainingException() { $formatter = new GelfMessageFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger', 'exception' => array( + 'context' => ['from' => 'logger', 'exception' => [ 'class' => '\Exception', 'file' => '/some/file/in/dir.php:56', - 'trace' => array('/some/file/1.php:23', '/some/file/2.php:3'), - )), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'trace' => ['/some/file/1.php:23', '/some/file/2.php:3'], + ]], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; $message = $formatter->format($record); @@ -166,15 +166,15 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithExtra() { $formatter = new GelfMessageFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['key' => 'pair'], 'message' => 'log', - ); + ]; $message = $formatter->format($record); @@ -200,15 +200,15 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithLargeData() { $formatter = new GelfMessageFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('exception' => str_repeat(' ', 32767)), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => str_repeat(' ', 32767)), - 'message' => 'log' - ); + 'context' => ['exception' => str_repeat(' ', 32767)], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['key' => str_repeat(' ', 32767)], + 'message' => 'log', + ]; $message = $formatter->format($record); $messageArray = $message->toArray(); @@ -216,7 +216,7 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase $length = 200; foreach ($messageArray as $key => $value) { - if (!in_array($key, array('level', 'timestamp'))) { + if (!in_array($key, ['level', 'timestamp']) && is_string($value)) { $length += strlen($value); } } diff --git a/tests/Monolog/Formatter/JsonFormatterTest.php b/tests/Monolog/Formatter/JsonFormatterTest.php index df7e35d..392647f 100644 --- a/tests/Monolog/Formatter/JsonFormatterTest.php +++ b/tests/Monolog/Formatter/JsonFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Formatter; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; class JsonFormatterTest extends TestCase { @@ -42,7 +42,7 @@ class JsonFormatterTest extends TestCase $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false); $record = $this->getRecord(); - $this->assertEquals(json_encode($record), $formatter->format($record)); + $this->assertEquals('{"message":"test","context":[],"level":300,"level_name":"WARNING","channel":"test","datetime":"'.$record['datetime']->format('Y-m-d\TH:i:s.uP').'","extra":[]}', $formatter->format($record)); } /** @@ -52,10 +52,10 @@ class JsonFormatterTest extends TestCase public function testFormatBatch() { $formatter = new JsonFormatter(); - $records = array( + $records = [ $this->getRecord(Logger::WARNING), $this->getRecord(Logger::DEBUG), - ); + ]; $this->assertEquals(json_encode($records), $formatter->formatBatch($records)); } @@ -66,10 +66,10 @@ class JsonFormatterTest extends TestCase public function testFormatBatchNewlines() { $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_NEWLINES); - $records = $expected = array( + $records = $expected = [ $this->getRecord(Logger::WARNING), $this->getRecord(Logger::DEBUG), - ); + ]; array_walk($expected, function (&$value, $key) { $value = json_encode($value); }); @@ -80,35 +80,35 @@ class JsonFormatterTest extends TestCase { $formatter = new JsonFormatter(); $exception = new \RuntimeException('Foo'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'CRITICAL', 'channel' => 'core', - 'context' => array('exception' => $exception), - 'datetime' => new \DateTime(), - 'extra' => array(), + 'context' => ['exception' => $exception], + 'datetime' => new \DateTimeImmutable(), + 'extra' => [], 'message' => 'foobar', - )); + ]); if (version_compare(PHP_VERSION, '5.4.0', '>=')) { $path = substr(json_encode($exception->getFile(), JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), 1, -1); } else { $path = substr(json_encode($exception->getFile()), 1, -1); } - $this->assertEquals('{"level_name":"CRITICAL","channel":"core","context":{"exception":{"class":"RuntimeException","message":"'.$exception->getMessage().'","code":'.$exception->getCode().',"file":"'.$path.':'.$exception->getLine().'"}},"datetime":'.json_encode(new \DateTime()).',"extra":[],"message":"foobar"}'."\n", $message); + $this->assertEquals('{"level_name":"CRITICAL","channel":"core","context":{"exception":{"class":"RuntimeException","message":"'.$exception->getMessage().'","code":'.$exception->getCode().',"file":"'.$path.':'.$exception->getLine().'"}},"datetime":'.json_encode(new \DateTimeImmutable()).',"extra":[],"message":"foobar"}'."\n", $message); } public function testDefFormatWithPreviousException() { $formatter = new JsonFormatter(); $exception = new \RuntimeException('Foo', 0, new \LogicException('Wut?')); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'CRITICAL', 'channel' => 'core', - 'context' => array('exception' => $exception), - 'datetime' => new \DateTime(), - 'extra' => array(), + 'context' => ['exception' => $exception], + 'datetime' => new \DateTimeImmutable(), + 'extra' => [], 'message' => 'foobar', - )); + ]); if (version_compare(PHP_VERSION, '5.4.0', '>=')) { $pathPrevious = substr(json_encode($exception->getPrevious()->getFile(), JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), 1, -1); @@ -117,6 +117,6 @@ class JsonFormatterTest extends TestCase $pathPrevious = substr(json_encode($exception->getPrevious()->getFile()), 1, -1); $pathException = substr(json_encode($exception->getFile()), 1, -1); } - $this->assertEquals('{"level_name":"CRITICAL","channel":"core","context":{"exception":{"class":"RuntimeException","message":"'.$exception->getMessage().'","code":'.$exception->getCode().',"file":"'.$pathException.':'.$exception->getLine().'","previous":{"class":"LogicException","message":"'.$exception->getPrevious()->getMessage().'","code":'.$exception->getPrevious()->getCode().',"file":"'.$pathPrevious.':'.$exception->getPrevious()->getLine().'"}}},"datetime":'.json_encode(new \DateTime()).',"extra":[],"message":"foobar"}'."\n", $message); + $this->assertEquals('{"level_name":"CRITICAL","channel":"core","context":{"exception":{"class":"RuntimeException","message":"'.$exception->getMessage().'","code":'.$exception->getCode().',"file":"'.$pathException.':'.$exception->getLine().'","previous":{"class":"LogicException","message":"'.$exception->getPrevious()->getMessage().'","code":'.$exception->getPrevious()->getCode().',"file":"'.$pathPrevious.':'.$exception->getPrevious()->getLine().'"}}},"datetime":'.json_encode(new \DateTimeImmutable()).',"extra":[],"message":"foobar"}'."\n", $message); } } diff --git a/tests/Monolog/Formatter/LineFormatterTest.php b/tests/Monolog/Formatter/LineFormatterTest.php index 310d93c..cbbbc66 100644 --- a/tests/Monolog/Formatter/LineFormatterTest.php +++ b/tests/Monolog/Formatter/LineFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -19,118 +19,118 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase public function testDefFormatWithString() { $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'WARNING', 'channel' => 'log', - 'context' => array(), + 'context' => [], 'message' => 'foo', - 'datetime' => new \DateTime, - 'extra' => array(), - )); + 'datetime' => new \DateTimeImmutable, + 'extra' => [], + ]); $this->assertEquals('['.date('Y-m-d').'] log.WARNING: foo [] []'."\n", $message); } public function testDefFormatWithArrayContext() { $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'ERROR', 'channel' => 'meh', 'message' => 'foo', - 'datetime' => new \DateTime, - 'extra' => array(), - 'context' => array( + 'datetime' => new \DateTimeImmutable, + 'extra' => [], + 'context' => [ 'foo' => 'bar', 'baz' => 'qux', 'bool' => false, 'null' => null, - ), - )); + ], + ]); $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foo {"foo":"bar","baz":"qux","bool":false,"null":null} []'."\n", $message); } public function testDefFormatExtras() { $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array('ip' => '127.0.0.1'), + 'context' => [], + 'datetime' => new \DateTimeImmutable, + 'extra' => ['ip' => '127.0.0.1'], 'message' => 'log', - )); + ]); $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log [] {"ip":"127.0.0.1"}'."\n", $message); } public function testFormatExtras() { $formatter = new LineFormatter("[%datetime%] %channel%.%level_name%: %message% %context% %extra.file% %extra%\n", 'Y-m-d'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array('ip' => '127.0.0.1', 'file' => 'test'), + 'context' => [], + 'datetime' => new \DateTimeImmutable, + 'extra' => ['ip' => '127.0.0.1', 'file' => 'test'], 'message' => 'log', - )); + ]); $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log [] test {"ip":"127.0.0.1"}'."\n", $message); } public function testContextAndExtraOptionallyNotShownIfEmpty() { $formatter = new LineFormatter(null, 'Y-m-d', false, true); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), + 'context' => [], + 'datetime' => new \DateTimeImmutable, + 'extra' => [], 'message' => 'log', - )); + ]); $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log '."\n", $message); } public function testContextAndExtraReplacement() { $formatter = new LineFormatter('%context.foo% => %extra.foo%'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('foo' => 'bar'), - 'datetime' => new \DateTime, - 'extra' => array('foo' => 'xbar'), + 'context' => ['foo' => 'bar'], + 'datetime' => new \DateTimeImmutable, + 'extra' => ['foo' => 'xbar'], 'message' => 'log', - )); + ]); $this->assertEquals('bar => xbar', $message); } public function testDefFormatWithObject() { $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array('foo' => new TestFoo, 'bar' => new TestBar, 'baz' => array(), 'res' => fopen('php://memory', 'rb')), + 'context' => [], + 'datetime' => new \DateTimeImmutable, + 'extra' => ['foo' => new TestFoo, 'bar' => new TestBar, 'baz' => [], 'res' => fopen('php://memory', 'rb')], 'message' => 'foobar', - )); + ]); - $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\\\Formatter\\\\TestFoo: {\\"foo\\":\\"foo\\"})","bar":"[object] (Monolog\\\\Formatter\\\\TestBar: bar)","baz":[],"res":"[resource] (stream)"}'."\n", $message); + $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":{"Monolog\\\\Formatter\\\\TestFoo":{"foo":"fooValue"}},"bar":{"Monolog\\\\Formatter\\\\TestBar":"bar"},"baz":[],"res":"[resource(stream)]"}'."\n", $message); } public function testDefFormatWithException() { $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'CRITICAL', 'channel' => 'core', - 'context' => array('exception' => new \RuntimeException('Foo')), - 'datetime' => new \DateTime, - 'extra' => array(), + 'context' => ['exception' => new \RuntimeException('Foo')], + 'datetime' => new \DateTimeImmutable, + 'extra' => [], 'message' => 'foobar', - )); + ]); $path = str_replace('\\/', '/', json_encode(__FILE__)); @@ -141,14 +141,14 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase { $formatter = new LineFormatter(null, 'Y-m-d'); $previous = new \LogicException('Wut?'); - $message = $formatter->format(array( + $message = $formatter->format([ 'level_name' => 'CRITICAL', 'channel' => 'core', - 'context' => array('exception' => new \RuntimeException('Foo', 0, $previous)), - 'datetime' => new \DateTime, - 'extra' => array(), + 'context' => ['exception' => new \RuntimeException('Foo', 0, $previous)], + 'datetime' => new \DateTimeImmutable, + 'extra' => [], 'message' => 'foobar', - )); + ]); $path = str_replace('\\/', '/', json_encode(__FILE__)); @@ -158,24 +158,24 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase public function testBatchFormat() { $formatter = new LineFormatter(null, 'Y-m-d'); - $message = $formatter->formatBatch(array( - array( + $message = $formatter->formatBatch([ + [ 'level_name' => 'CRITICAL', 'channel' => 'test', 'message' => 'bar', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - ), - array( + 'context' => [], + 'datetime' => new \DateTimeImmutable, + 'extra' => [], + ], + [ 'level_name' => 'WARNING', 'channel' => 'log', 'message' => 'foo', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - ), - )); + 'context' => [], + 'datetime' => new \DateTimeImmutable, + 'extra' => [], + ], + ]); $this->assertEquals('['.date('Y-m-d').'] test.CRITICAL: bar [] []'."\n".'['.date('Y-m-d').'] log.WARNING: foo [] []'."\n", $message); } @@ -183,11 +183,11 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase { $formatter = new LineFormatter(null, 'Y-m-d'); $message = $formatter->format( - array( + [ 'message' => "foo\nbar", - 'context' => array(), - 'extra' => array(), - ) + 'context' => [], + 'extra' => [], + ] ); $this->assertRegExp('/foo bar/', $message); @@ -197,11 +197,11 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase { $formatter = new LineFormatter(null, 'Y-m-d', true); $message = $formatter->format( - array( + [ 'message' => "foo\nbar", - 'context' => array(), - 'extra' => array(), - ) + 'context' => [], + 'extra' => [], + ] ); $this->assertRegExp('/foo\nbar/', $message); @@ -210,7 +210,7 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase class TestFoo { - public $foo = 'foo'; + public $foo = 'fooValue'; } class TestBar diff --git a/tests/Monolog/Formatter/LogglyFormatterTest.php b/tests/Monolog/Formatter/LogglyFormatterTest.php index 6d59b3f..2eff4ac 100644 --- a/tests/Monolog/Formatter/LogglyFormatterTest.php +++ b/tests/Monolog/Formatter/LogglyFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Formatter; -use Monolog\TestCase; +use Monolog\Test\TestCase; class LogglyFormatterTest extends TestCase { @@ -34,7 +34,8 @@ class LogglyFormatterTest extends TestCase $formatter = new LogglyFormatter(); $record = $this->getRecord(); $formatted_decoded = json_decode($formatter->format($record), true); + $this->assertArrayNotHasKey("datetime", $formatted_decoded); $this->assertArrayHasKey("timestamp", $formatted_decoded); - $this->assertEquals(new \DateTime($formatted_decoded["timestamp"]), $record["datetime"]); + $this->assertEquals($record["datetime"]->format('Y-m-d\TH:i:s.uO'), $formatted_decoded["timestamp"]); } } diff --git a/tests/Monolog/Formatter/LogmaticFormatterTest.php b/tests/Monolog/Formatter/LogmaticFormatterTest.php new file mode 100644 index 0000000..d27670f --- /dev/null +++ b/tests/Monolog/Formatter/LogmaticFormatterTest.php @@ -0,0 +1,36 @@ +<?php declare(strict_types=1); + +/* + * This file is part of the Monolog package. + * + * (c) Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Formatter; + +use Monolog\Test\TestCase; + +/** + * @author Julien Breux <julien.breux@gmail.com> + */ +class LogmaticFormatterTest extends TestCase +{ + /** + * @covers Monolog\Formatter\LogmaticFormatter::format + */ + public function testFormat() + { + $formatter = new LogmaticFormatter(); + $formatter->setHostname('testHostname'); + $formatter->setAppname('testAppname'); + $record = $this->getRecord(); + $formatted_decoded = json_decode($formatter->format($record), true); + $this->assertArrayHasKey('hostname', $formatted_decoded); + $this->assertArrayHasKey('appname', $formatted_decoded); + $this->assertEquals('testHostname', $formatted_decoded['hostname']); + $this->assertEquals('testAppname', $formatted_decoded['appname']); + } +} diff --git a/tests/Monolog/Formatter/LogstashFormatterTest.php b/tests/Monolog/Formatter/LogstashFormatterTest.php index 9f6b1cc..57d6759 100644 --- a/tests/Monolog/Formatter/LogstashFormatterTest.php +++ b/tests/Monolog/Formatter/LogstashFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -25,158 +25,18 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase /** * @covers Monolog\Formatter\LogstashFormatter::format */ - public function testDefaultFormatter() - { - $formatter = new LogstashFormatter('test', 'hostname'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); - $this->assertEquals('log', $message['@message']); - $this->assertEquals('meh', $message['@fields']['channel']); - $this->assertContains('meh', $message['@tags']); - $this->assertEquals(Logger::ERROR, $message['@fields']['level']); - $this->assertEquals('test', $message['@type']); - $this->assertEquals('hostname', $message['@source']); - - $formatter = new LogstashFormatter('mysystem'); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals('mysystem', $message['@type']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithFileAndLine() - { - $formatter = new LogstashFormatter('test'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('file' => 'test', 'line' => 14), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertEquals('test', $message['@fields']['file']); - $this->assertEquals(14, $message['@fields']['line']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithContext() - { - $formatter = new LogstashFormatter('test'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $message_array = $message['@fields']; - - $this->assertArrayHasKey('ctxt_from', $message_array); - $this->assertEquals('logger', $message_array['ctxt_from']); - - // Test with extraPrefix - $formatter = new LogstashFormatter('test', null, null, 'CTX'); - $message = json_decode($formatter->format($record), true); - - $message_array = $message['@fields']; - - $this->assertArrayHasKey('CTXfrom', $message_array); - $this->assertEquals('logger', $message_array['CTXfrom']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ - public function testFormatWithExtra() - { - $formatter = new LogstashFormatter('test'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $message_array = $message['@fields']; - - $this->assertArrayHasKey('key', $message_array); - $this->assertEquals('pair', $message_array['key']); - - // Test with extraPrefix - $formatter = new LogstashFormatter('test', null, 'EXT'); - $message = json_decode($formatter->format($record), true); - - $message_array = $message['@fields']; - - $this->assertArrayHasKey('EXTkey', $message_array); - $this->assertEquals('pair', $message_array['EXTkey']); - } - - public function testFormatWithApplicationName() - { - $formatter = new LogstashFormatter('app', 'test'); - $record = array( - 'level' => Logger::ERROR, - 'level_name' => 'ERROR', - 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), - 'message' => 'log', - ); - - $message = json_decode($formatter->format($record), true); - - $this->assertArrayHasKey('@type', $message); - $this->assertEquals('app', $message['@type']); - } - - /** - * @covers Monolog\Formatter\LogstashFormatter::format - */ public function testDefaultFormatterV1() { - $formatter = new LogstashFormatter('test', 'hostname', null, 'ctxt_', LogstashFormatter::V1); - $record = array( + $formatter = new LogstashFormatter('test', 'hostname', null, 'ctxt_'); + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => [], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; $message = json_decode($formatter->format($record), true); @@ -188,7 +48,7 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase $this->assertEquals('test', $message['type']); $this->assertEquals('hostname', $message['host']); - $formatter = new LogstashFormatter('mysystem', null, null, 'ctxt_', LogstashFormatter::V1); + $formatter = new LogstashFormatter('mysystem', null, null, 'ctxt_'); $message = json_decode($formatter->format($record), true); @@ -200,16 +60,16 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase */ public function testFormatWithFileAndLineV1() { - $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); - $record = array( + $formatter = new LogstashFormatter('test', null, null, 'ctxt_'); + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('file' => 'test', 'line' => 14), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['file' => 'test', 'line' => 14], 'message' => 'log', - ); + ]; $message = json_decode($formatter->format($record), true); @@ -222,16 +82,16 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase */ public function testFormatWithContextV1() { - $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); - $record = array( + $formatter = new LogstashFormatter('test', null, null, 'ctxt_'); + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['key' => 'pair'], 'message' => 'log', - ); + ]; $message = json_decode($formatter->format($record), true); @@ -239,7 +99,7 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase $this->assertEquals('logger', $message['ctxt_from']); // Test with extraPrefix - $formatter = new LogstashFormatter('test', null, null, 'CTX', LogstashFormatter::V1); + $formatter = new LogstashFormatter('test', null, null, 'CTX'); $message = json_decode($formatter->format($record), true); $this->assertArrayHasKey('CTXfrom', $message); @@ -251,16 +111,16 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase */ public function testFormatWithExtraV1() { - $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1); - $record = array( + $formatter = new LogstashFormatter('test', null, null, 'ctxt_'); + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['key' => 'pair'], 'message' => 'log', - ); + ]; $message = json_decode($formatter->format($record), true); @@ -268,7 +128,7 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase $this->assertEquals('pair', $message['key']); // Test with extraPrefix - $formatter = new LogstashFormatter('test', null, 'EXT', 'ctxt_', LogstashFormatter::V1); + $formatter = new LogstashFormatter('test', null, 'EXT', 'ctxt_'); $message = json_decode($formatter->format($record), true); $this->assertArrayHasKey('EXTkey', $message); @@ -277,16 +137,16 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithApplicationNameV1() { - $formatter = new LogstashFormatter('app', 'test', null, 'ctxt_', LogstashFormatter::V1); - $record = array( + $formatter = new LogstashFormatter('app', 'test', null, 'ctxt_'); + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('key' => 'pair'), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['key' => 'pair'], 'message' => 'log', - ); + ]; $message = json_decode($formatter->format($record), true); @@ -296,38 +156,27 @@ class LogstashFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithLatin9Data() { - if (version_compare(PHP_VERSION, '5.5.0', '<')) { - // Ignore the warning that will be emitted by PHP <5.5.0 - \PHPUnit_Framework_Error_Warning::$enabled = false; - } $formatter = new LogstashFormatter('test', 'hostname'); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => '¯\_(ツ)_/¯', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array( + 'context' => [], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [ 'user_agent' => "\xD6WN; FBCR/OrangeEspa\xF1a; Vers\xE3o/4.0; F\xE4rist", - ), + ], 'message' => 'log', - ); + ]; $message = json_decode($formatter->format($record), true); $this->assertEquals("1970-01-01T00:00:00.000000+00:00", $message['@timestamp']); - $this->assertEquals('log', $message['@message']); - $this->assertEquals('¯\_(ツ)_/¯', $message['@fields']['channel']); - $this->assertContains('¯\_(ツ)_/¯', $message['@tags']); - $this->assertEquals(Logger::ERROR, $message['@fields']['level']); - $this->assertEquals('test', $message['@type']); - $this->assertEquals('hostname', $message['@source']); - if (version_compare(PHP_VERSION, '5.5.0', '>=')) { - $this->assertEquals('ÖWN; FBCR/OrangeEspaña; Versão/4.0; Färist', $message['@fields']['user_agent']); - } else { - // PHP <5.5 does not return false for an element encoding failure, - // instead it emits a warning (possibly) and nulls the value. - $this->assertEquals(null, $message['@fields']['user_agent']); - } + $this->assertEquals('log', $message['message']); + $this->assertEquals('¯\_(ツ)_/¯', $message['channel']); + $this->assertEquals('ERROR', $message['level']); + $this->assertEquals('test', $message['type']); + $this->assertEquals('hostname', $message['host']); + $this->assertEquals('ÖWN; FBCR/OrangeEspaña; Versão/4.0; Färist', $message['user_agent']); } } diff --git a/tests/Monolog/Formatter/MongoDBFormatterTest.php b/tests/Monolog/Formatter/MongoDBFormatterTest.php index 52e699e..2933497 100644 --- a/tests/Monolog/Formatter/MongoDBFormatterTest.php +++ b/tests/Monolog/Formatter/MongoDBFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -20,17 +20,17 @@ class MongoDBFormatterTest extends \PHPUnit_Framework_TestCase { public function setUp() { - if (!class_exists('MongoDate')) { - $this->markTestSkipped('mongo extension not installed'); + if (!class_exists('MongoDB\BSON\UTCDateTime')) { + $this->markTestSkipped('ext-mongodb not installed'); } } public function constructArgumentProvider() { - return array( - array(1, true, 1, true), - array(0, false, 0, false), - ); + return [ + [1, true, 1, true], + [0, false, 0, false], + ]; } /** @@ -56,28 +56,28 @@ class MongoDBFormatterTest extends \PHPUnit_Framework_TestCase public function testSimpleFormat() { - $record = array( + $record = [ 'message' => 'some log message', - 'context' => array(), + 'context' => [], 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); + 'datetime' => new \DateTimeImmutable('2016-01-21T21:11:30.123456+00:00'), + 'extra' => [], + ]; $formatter = new MongoDBFormatter(); $formattedRecord = $formatter->format($record); $this->assertCount(7, $formattedRecord); $this->assertEquals('some log message', $formattedRecord['message']); - $this->assertEquals(array(), $formattedRecord['context']); + $this->assertEquals([], $formattedRecord['context']); $this->assertEquals(Logger::WARNING, $formattedRecord['level']); $this->assertEquals(Logger::getLevelName(Logger::WARNING), $formattedRecord['level_name']); $this->assertEquals('test', $formattedRecord['channel']); - $this->assertInstanceOf('\MongoDate', $formattedRecord['datetime']); - $this->assertEquals('0.00000000 1391212800', $formattedRecord['datetime']->__toString()); - $this->assertEquals(array(), $formattedRecord['extra']); + $this->assertInstanceOf('MongoDB\BSON\UTCDateTime', $formattedRecord['datetime']); + $this->assertEquals('1453410690123', $formattedRecord['datetime']->__toString()); + $this->assertEquals([], $formattedRecord['extra']); } public function testRecursiveFormat() @@ -86,34 +86,35 @@ class MongoDBFormatterTest extends \PHPUnit_Framework_TestCase $someObject->foo = 'something'; $someObject->bar = 'stuff'; - $record = array( + $record = [ 'message' => 'some log message', - 'context' => array( - 'stuff' => new \DateTime('2014-02-01 02:31:33'), + 'context' => [ + 'stuff' => new \DateTimeImmutable('1969-01-21T21:11:30.123456+00:00'), 'some_object' => $someObject, 'context_string' => 'some string', 'context_int' => 123456, 'except' => new \Exception('exception message', 987), - ), + ], 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); + 'datetime' => new \DateTimeImmutable('2016-01-21T21:11:30.123456+00:00'), + 'extra' => [], + ]; $formatter = new MongoDBFormatter(); $formattedRecord = $formatter->format($record); $this->assertCount(5, $formattedRecord['context']); - $this->assertInstanceOf('\MongoDate', $formattedRecord['context']['stuff']); - $this->assertEquals('0.00000000 1391221893', $formattedRecord['context']['stuff']->__toString()); + $this->assertInstanceOf('MongoDB\BSON\UTCDateTime', $formattedRecord['context']['stuff']); + $this->assertEquals('-29731710123', $formattedRecord['context']['stuff']->__toString()); + $this->assertEquals( - array( + [ 'foo' => 'something', 'bar' => 'stuff', 'class' => 'stdClass', - ), + ], $formattedRecord['context']['some_object'] ); $this->assertEquals('some string', $formattedRecord['context']['context_string']); @@ -130,75 +131,75 @@ class MongoDBFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatDepthArray() { - $record = array( + $record = [ 'message' => 'some log message', - 'context' => array( - 'nest2' => array( + 'context' => [ + 'nest2' => [ 'property' => 'anything', - 'nest3' => array( + 'nest3' => [ 'nest4' => 'value', 'property' => 'nothing', - ), - ), - ), + ], + ], + ], 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); + 'datetime' => new \DateTimeImmutable('2016-01-21T21:11:30.123456+00:00'), + 'extra' => [], + ]; $formatter = new MongoDBFormatter(2); $formattedResult = $formatter->format($record); $this->assertEquals( - array( - 'nest2' => array( + [ + 'nest2' => [ 'property' => 'anything', 'nest3' => '[...]', - ), - ), + ], + ], $formattedResult['context'] ); } public function testFormatDepthArrayInfiniteNesting() { - $record = array( + $record = [ 'message' => 'some log message', - 'context' => array( - 'nest2' => array( + 'context' => [ + 'nest2' => [ 'property' => 'something', - 'nest3' => array( + 'nest3' => [ 'property' => 'anything', - 'nest4' => array( + 'nest4' => [ 'property' => 'nothing', - ), - ), - ), - ), + ], + ], + ], + ], 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); + 'datetime' => new \DateTimeImmutable('2016-01-21T21:11:30.123456+00:00'), + 'extra' => [], + ]; $formatter = new MongoDBFormatter(0); $formattedResult = $formatter->format($record); $this->assertEquals( - array( - 'nest2' => array( + [ + 'nest2' => [ 'property' => 'something', - 'nest3' => array( + 'nest3' => [ 'property' => 'anything', - 'nest4' => array( + 'nest4' => [ 'property' => 'nothing', - ), - ), - ), - ), + ], + ], + ], + ], $formattedResult['context'] ); } @@ -211,46 +212,46 @@ class MongoDBFormatterTest extends \PHPUnit_Framework_TestCase $someObject->nest3->property = 'nothing'; $someObject->nest3->nest4 = 'invisible'; - $record = array( + $record = [ 'message' => 'some log message', - 'context' => array( + 'context' => [ 'nest2' => $someObject, - ), + ], 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); + 'datetime' => new \DateTimeImmutable('2016-01-21T21:11:30.123456+00:00'), + 'extra' => [], + ]; $formatter = new MongoDBFormatter(2, true); $formattedResult = $formatter->format($record); $this->assertEquals( - array( - 'nest2' => array( + [ + 'nest2' => [ 'property' => 'anything', 'nest3' => '[...]', 'class' => 'stdClass', - ), - ), + ], + ], $formattedResult['context'] ); } public function testFormatDepthException() { - $record = array( + $record = [ 'message' => 'some log message', - 'context' => array( + 'context' => [ 'nest2' => new \Exception('exception message', 987), - ), + ], 'level' => Logger::WARNING, 'level_name' => Logger::getLevelName(Logger::WARNING), 'channel' => 'test', - 'datetime' => new \DateTime('2014-02-01 00:00:00'), - 'extra' => array(), - ); + 'datetime' => new \DateTimeImmutable('2016-01-21T21:11:30.123456+00:00'), + 'extra' => [], + ]; $formatter = new MongoDBFormatter(2, false); $formattedRecord = $formatter->format($record); diff --git a/tests/Monolog/Formatter/NormalizerFormatterTest.php b/tests/Monolog/Formatter/NormalizerFormatterTest.php index 83adb7e..2b2d7c7 100644 --- a/tests/Monolog/Formatter/NormalizerFormatterTest.php +++ b/tests/Monolog/Formatter/NormalizerFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -26,40 +26,40 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase public function testFormat() { $formatter = new NormalizerFormatter('Y-m-d'); - $formatted = $formatter->format(array( + $formatted = $formatter->format([ 'level_name' => 'ERROR', 'channel' => 'meh', 'message' => 'foo', - 'datetime' => new \DateTime, - 'extra' => array('foo' => new TestFooNorm, 'bar' => new TestBarNorm, 'baz' => array(), 'res' => fopen('php://memory', 'rb')), - 'context' => array( + 'datetime' => new \DateTimeImmutable, + 'extra' => ['foo' => new TestFooNorm, 'bar' => new TestBarNorm, 'baz' => [], 'res' => fopen('php://memory', 'rb')], + 'context' => [ 'foo' => 'bar', 'baz' => 'qux', 'inf' => INF, '-inf' => -INF, 'nan' => acos(4), - ), - )); + ], + ]); - $this->assertEquals(array( + $this->assertEquals([ 'level_name' => 'ERROR', 'channel' => 'meh', 'message' => 'foo', 'datetime' => date('Y-m-d'), - 'extra' => array( - 'foo' => '[object] (Monolog\\Formatter\\TestFooNorm: {"foo":"foo"})', - 'bar' => '[object] (Monolog\\Formatter\\TestBarNorm: bar)', - 'baz' => array(), - 'res' => '[resource] (stream)', - ), - 'context' => array( + 'extra' => [ + 'foo' => ['Monolog\\Formatter\\TestFooNorm' => ["foo" => "fooValue"]], + 'bar' => ['Monolog\\Formatter\\TestBarNorm' => 'bar'], + 'baz' => [], + 'res' => '[resource(stream)]', + ], + 'context' => [ 'foo' => 'bar', 'baz' => 'qux', 'inf' => 'INF', '-inf' => '-INF', 'nan' => 'NaN', - ), - ), $formatted); + ], + ], $formatted); } public function testFormatExceptions() @@ -67,72 +67,72 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase $formatter = new NormalizerFormatter('Y-m-d'); $e = new \LogicException('bar'); $e2 = new \RuntimeException('foo', 0, $e); - $formatted = $formatter->format(array( + $formatted = $formatter->format([ 'exception' => $e2, - )); + ]); $this->assertGreaterThan(5, count($formatted['exception']['trace'])); $this->assertTrue(isset($formatted['exception']['previous'])); unset($formatted['exception']['trace'], $formatted['exception']['previous']); - $this->assertEquals(array( - 'exception' => array( + $this->assertEquals([ + 'exception' => [ 'class' => get_class($e2), 'message' => $e2->getMessage(), 'code' => $e2->getCode(), 'file' => $e2->getFile().':'.$e2->getLine(), - ), - ), $formatted); + ], + ], $formatted); } public function testFormatToStringExceptionHandle() { $formatter = new NormalizerFormatter('Y-m-d'); $this->setExpectedException('RuntimeException', 'Could not convert to string'); - $formatter->format(array( + $formatter->format([ 'myObject' => new TestToStringError(), - )); + ]); } public function testBatchFormat() { $formatter = new NormalizerFormatter('Y-m-d'); - $formatted = $formatter->formatBatch(array( - array( + $formatted = $formatter->formatBatch([ + [ 'level_name' => 'CRITICAL', 'channel' => 'test', 'message' => 'bar', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - ), - array( + 'context' => [], + 'datetime' => new \DateTimeImmutable, + 'extra' => [], + ], + [ 'level_name' => 'WARNING', 'channel' => 'log', 'message' => 'foo', - 'context' => array(), - 'datetime' => new \DateTime, - 'extra' => array(), - ), - )); - $this->assertEquals(array( - array( + 'context' => [], + 'datetime' => new \DateTimeImmutable, + 'extra' => [], + ], + ]); + $this->assertEquals([ + [ 'level_name' => 'CRITICAL', 'channel' => 'test', 'message' => 'bar', - 'context' => array(), + 'context' => [], 'datetime' => date('Y-m-d'), - 'extra' => array(), - ), - array( + 'extra' => [], + ], + [ 'level_name' => 'WARNING', 'channel' => 'log', 'message' => 'foo', - 'context' => array(), + 'context' => [], 'datetime' => date('Y-m-d'), - 'extra' => array(), - ), - ), $formatted); + 'extra' => [], + ], + ], $formatted); } /** @@ -159,11 +159,20 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase $formatter = new NormalizerFormatter(); $reflMethod = new \ReflectionMethod($formatter, 'toJson'); $reflMethod->setAccessible(true); - $res = $reflMethod->invoke($formatter, array($foo, $bar), true); + $res = $reflMethod->invoke($formatter, [$foo, $bar], true); restore_error_handler(); - $this->assertEquals(@json_encode(array($foo, $bar)), $res); + $this->assertEquals(@json_encode([$foo, $bar]), $res); + } + + public function testCanNormalizeReferences() + { + $formatter = new NormalizerFormatter(); + $x = ['foo' => 'bar']; + $y = ['x' => &$x]; + $x['y'] = &$y; + $formatter->format($y); } public function testIgnoresInvalidTypes() @@ -183,11 +192,11 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase $formatter = new NormalizerFormatter(); $reflMethod = new \ReflectionMethod($formatter, 'toJson'); $reflMethod->setAccessible(true); - $res = $reflMethod->invoke($formatter, array($resource), true); + $res = $reflMethod->invoke($formatter, [$resource], true); restore_error_handler(); - $this->assertEquals(@json_encode(array($resource)), $res); + $this->assertEquals(@json_encode([$resource]), $res); } /** @@ -195,10 +204,6 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase */ public function testThrowsOnInvalidEncoding() { - if (version_compare(PHP_VERSION, '5.5.0', '<')) { - // Ignore the warning that will be emitted by PHP <5.5.0 - \PHPUnit_Framework_Error_Warning::$enabled = false; - } $formatter = new NormalizerFormatter(); $reflMethod = new \ReflectionMethod($formatter, 'toJson'); $reflMethod->setAccessible(true); @@ -206,31 +211,18 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase // send an invalid unicode sequence as a object that can't be cleaned $record = new \stdClass; $record->message = "\xB1\x31"; - $res = $reflMethod->invoke($formatter, $record); - if (PHP_VERSION_ID < 50500 && $res === '{"message":null}') { - throw new \RuntimeException('PHP 5.3/5.4 throw a warning and null the value instead of returning false entirely'); - } + $reflMethod->invoke($formatter, $record); } public function testConvertsInvalidEncodingAsLatin9() { - if (version_compare(PHP_VERSION, '5.5.0', '<')) { - // Ignore the warning that will be emitted by PHP <5.5.0 - \PHPUnit_Framework_Error_Warning::$enabled = false; - } $formatter = new NormalizerFormatter(); $reflMethod = new \ReflectionMethod($formatter, 'toJson'); $reflMethod->setAccessible(true); - $res = $reflMethod->invoke($formatter, array('message' => "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE")); + $res = $reflMethod->invoke($formatter, ['message' => "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE"]); - if (version_compare(PHP_VERSION, '5.5.0', '>=')) { - $this->assertSame('{"message":"€ŠšŽžŒœŸ"}', $res); - } else { - // PHP <5.5 does not return false for an element encoding failure, - // instead it emits a warning (possibly) and nulls the value. - $this->assertSame('{"message":null}', $res); - } + $this->assertSame('{"message":"€ŠšŽžŒœŸ"}', $res); } /** @@ -250,19 +242,19 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase { $obj = new \stdClass; - return array( - 'null' => array(null, null), - 'int' => array(123, 123), - 'float' => array(123.45, 123.45), - 'bool false' => array(false, false), - 'bool true' => array(true, true), - 'ascii string' => array('abcdef', 'abcdef'), - 'latin9 string' => array("\xB1\x31\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE\xFF", '±1€ŠšŽžŒœŸÿ'), - 'unicode string' => array('¤¦¨´¸¼½¾€ŠšŽžŒœŸ', '¤¦¨´¸¼½¾€ŠšŽžŒœŸ'), - 'empty array' => array(array(), array()), - 'array' => array(array('abcdef'), array('abcdef')), - 'object' => array($obj, $obj), - ); + return [ + 'null' => [null, null], + 'int' => [123, 123], + 'float' => [123.45, 123.45], + 'bool false' => [false, false], + 'bool true' => [true, true], + 'ascii string' => ['abcdef', 'abcdef'], + 'latin9 string' => ["\xB1\x31\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE\xFF", '±1€ŠšŽžŒœŸÿ'], + 'unicode string' => ['¤¦¨´¸¼½¾€ŠšŽžŒœŸ', '¤¦¨´¸¼½¾€ŠšŽžŒœŸ'], + 'empty array' => [[], []], + 'array' => [['abcdef'], ['abcdef']], + 'object' => [$obj, $obj], + ]; } /** @@ -282,26 +274,22 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase public function providesHandleJsonErrorFailure() { - return array( - 'depth' => array(JSON_ERROR_DEPTH, 'Maximum stack depth exceeded'), - 'state' => array(JSON_ERROR_STATE_MISMATCH, 'Underflow or the modes mismatch'), - 'ctrl' => array(JSON_ERROR_CTRL_CHAR, 'Unexpected control character found'), - 'default' => array(-1, 'Unknown error'), - ); + return [ + 'depth' => [JSON_ERROR_DEPTH, 'Maximum stack depth exceeded'], + 'state' => [JSON_ERROR_STATE_MISMATCH, 'Underflow or the modes mismatch'], + 'ctrl' => [JSON_ERROR_CTRL_CHAR, 'Unexpected control character found'], + 'default' => [-1, 'Unknown error'], + ]; } + // This happens i.e. in React promises or Guzzle streams where stream wrappers are registered + // and no file or line are included in the trace because it's treated as internal function public function testExceptionTraceWithArgs() { if (defined('HHVM_VERSION')) { $this->markTestSkipped('Not supported in HHVM since it detects errors differently'); } - // This happens i.e. in React promises or Guzzle streams where stream wrappers are registered - // and no file or line are included in the trace because it's treated as internal function - set_error_handler(function ($errno, $errstr, $errfile, $errline) { - throw new \ErrorException($errstr, 0, $errno, $errfile, $errline); - }); - try { // This will contain $resource and $wrappedResource as arguments in the trace item $resource = fopen('php://memory', 'rw+'); @@ -309,25 +297,24 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase $wrappedResource = new TestFooNorm; $wrappedResource->foo = $resource; // Just do something stupid with a resource/wrapped resource as argument - array_keys($wrappedResource); - } catch (\Exception $e) { - restore_error_handler(); + $arr = [$wrappedResource, $resource]; + // modifying the array inside throws a "usort(): Array was modified by the user comparison function" + usort($arr, function ($a, $b) { + throw new \ErrorException('Foo'); + }); + } catch (\Throwable $e) { } $formatter = new NormalizerFormatter(); - $record = array('context' => array('exception' => $e)); + $record = ['context' => ['exception' => $e]]; $result = $formatter->format($record); $this->assertRegExp( - '%"resource":"\[resource\] \(stream\)"%', + '%\[resource\(stream\)\]%', $result['context']['exception']['trace'][0] ); - if (version_compare(PHP_VERSION, '5.5.0', '>=')) { - $pattern = '%"wrappedResource":"\[object\] \(Monolog\\\\\\\\Formatter\\\\\\\\TestFooNorm: \)"%'; - } else { - $pattern = '%\\\\"foo\\\\":null%'; - } + $pattern = '%\[\{"Monolog\\\\\\\\Formatter\\\\\\\\TestFooNorm":"JSON_ERROR"\}%'; // Tests that the wrapped resource is ignored while encoding, only works for PHP <= 5.4 $this->assertRegExp( @@ -339,7 +326,7 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase class TestFooNorm { - public $foo = 'foo'; + public $foo = 'fooValue'; } class TestBarNorm diff --git a/tests/Monolog/Formatter/ScalarFormatterTest.php b/tests/Monolog/Formatter/ScalarFormatterTest.php index b1c8fd4..ea488e5 100644 --- a/tests/Monolog/Formatter/ScalarFormatterTest.php +++ b/tests/Monolog/Formatter/ScalarFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,6 +11,8 @@ namespace Monolog\Formatter; +use Monolog\DateTimeImmutable; + class ScalarFormatterTest extends \PHPUnit_Framework_TestCase { private $formatter; @@ -22,7 +24,7 @@ class ScalarFormatterTest extends \PHPUnit_Framework_TestCase public function buildTrace(\Exception $e) { - $data = array(); + $data = []; $trace = $e->getTrace(); foreach ($trace as $frame) { if (isset($frame['file'])) { @@ -37,74 +39,70 @@ class ScalarFormatterTest extends \PHPUnit_Framework_TestCase public function encodeJson($data) { - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); - } - - return json_encode($data); + return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); } public function testFormat() { $exception = new \Exception('foo'); - $formatted = $this->formatter->format(array( + $formatted = $this->formatter->format([ 'foo' => 'string', 'bar' => 1, 'baz' => false, - 'bam' => array(1, 2, 3), - 'bat' => array('foo' => 'bar'), - 'bap' => \DateTime::createFromFormat(\DateTime::ISO8601, '1970-01-01T00:00:00+0000'), + 'bam' => [1, 2, 3], + 'bat' => ['foo' => 'bar'], + 'bap' => $dt = new DateTimeImmutable(true), 'ban' => $exception, - )); + ]); - $this->assertSame(array( + $this->assertSame([ 'foo' => 'string', 'bar' => 1, 'baz' => false, - 'bam' => $this->encodeJson(array(1, 2, 3)), - 'bat' => $this->encodeJson(array('foo' => 'bar')), - 'bap' => '1970-01-01 00:00:00', - 'ban' => $this->encodeJson(array( + 'bam' => $this->encodeJson([1, 2, 3]), + 'bat' => $this->encodeJson(['foo' => 'bar']), + 'bap' => (string) $dt, + 'ban' => $this->encodeJson([ 'class' => get_class($exception), 'message' => $exception->getMessage(), 'code' => $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine(), 'trace' => $this->buildTrace($exception), - )), - ), $formatted); + ]), + ], $formatted); } public function testFormatWithErrorContext() { - $context = array('file' => 'foo', 'line' => 1); - $formatted = $this->formatter->format(array( + $context = ['file' => 'foo', 'line' => 1]; + $formatted = $this->formatter->format([ 'context' => $context, - )); + ]); - $this->assertSame(array( + $this->assertSame([ 'context' => $this->encodeJson($context), - ), $formatted); + ], $formatted); } public function testFormatWithExceptionContext() { $exception = new \Exception('foo'); - $formatted = $this->formatter->format(array( - 'context' => array( + $formatted = $this->formatter->format([ + 'context' => [ 'exception' => $exception, - ), - )); + ], + ]); - $this->assertSame(array( - 'context' => $this->encodeJson(array( - 'exception' => array( + $this->assertSame([ + 'context' => $this->encodeJson([ + 'exception' => [ 'class' => get_class($exception), 'message' => $exception->getMessage(), 'code' => $exception->getCode(), 'file' => $exception->getFile() . ':' . $exception->getLine(), 'trace' => $this->buildTrace($exception), - ), - )), - ), $formatted); + ], + ]), + ], $formatted); } } diff --git a/tests/Monolog/Formatter/WildfireFormatterTest.php b/tests/Monolog/Formatter/WildfireFormatterTest.php index 52f15a3..40ee82c 100644 --- a/tests/Monolog/Formatter/WildfireFormatterTest.php +++ b/tests/Monolog/Formatter/WildfireFormatterTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -21,15 +21,15 @@ class WildfireFormatterTest extends \PHPUnit_Framework_TestCase public function testDefaultFormat() { $wildfire = new WildfireFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('ip' => '127.0.0.1'), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['ip' => '127.0.0.1'], 'message' => 'log', - ); + ]; $message = $wildfire->format($record); @@ -46,15 +46,15 @@ class WildfireFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithFileAndLine() { $wildfire = new WildfireFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('from' => 'logger'), - 'datetime' => new \DateTime("@0"), - 'extra' => array('ip' => '127.0.0.1', 'file' => 'test', 'line' => 14), + 'context' => ['from' => 'logger'], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => ['ip' => '127.0.0.1', 'file' => 'test', 'line' => 14], 'message' => 'log', - ); + ]; $message = $wildfire->format($record); @@ -71,15 +71,15 @@ class WildfireFormatterTest extends \PHPUnit_Framework_TestCase public function testFormatWithoutContext() { $wildfire = new WildfireFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => [], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; $message = $wildfire->format($record); @@ -96,17 +96,17 @@ class WildfireFormatterTest extends \PHPUnit_Framework_TestCase public function testBatchFormatThrowException() { $wildfire = new WildfireFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array(), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => [], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; - $wildfire->formatBatch(array($record)); + $wildfire->formatBatch([$record]); } /** @@ -115,22 +115,22 @@ class WildfireFormatterTest extends \PHPUnit_Framework_TestCase public function testTableFormat() { $wildfire = new WildfireFormatter(); - $record = array( + $record = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'table-channel', - 'context' => array( - WildfireFormatter::TABLE => array( - array('col1', 'col2', 'col3'), - array('val1', 'val2', 'val3'), - array('foo1', 'foo2', 'foo3'), - array('bar1', 'bar2', 'bar3'), - ), - ), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => [ + WildfireFormatter::TABLE => [ + ['col1', 'col2', 'col3'], + ['val1', 'val2', 'val3'], + ['foo1', 'foo2', 'foo3'], + ['bar1', 'bar2', 'bar3'], + ], + ], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'table-message', - ); + ]; $message = $wildfire->format($record); diff --git a/tests/Monolog/Handler/AbstractHandlerTest.php b/tests/Monolog/Handler/AbstractHandlerTest.php index 568eb9d..b7451a7 100644 --- a/tests/Monolog/Handler/AbstractHandlerTest.php +++ b/tests/Monolog/Handler/AbstractHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,10 +11,8 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; -use Monolog\Formatter\LineFormatter; -use Monolog\Processor\WebProcessor; class AbstractHandlerTest extends TestCase { @@ -24,21 +22,17 @@ class AbstractHandlerTest extends TestCase * @covers Monolog\Handler\AbstractHandler::setLevel * @covers Monolog\Handler\AbstractHandler::getBubble * @covers Monolog\Handler\AbstractHandler::setBubble - * @covers Monolog\Handler\AbstractHandler::getFormatter - * @covers Monolog\Handler\AbstractHandler::setFormatter */ public function testConstructAndGetSet() { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array(Logger::WARNING, false)); + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', [Logger::WARNING, false]); $this->assertEquals(Logger::WARNING, $handler->getLevel()); $this->assertEquals(false, $handler->getBubble()); $handler->setLevel(Logger::ERROR); $handler->setBubble(true); - $handler->setFormatter($formatter = new LineFormatter); $this->assertEquals(Logger::ERROR, $handler->getLevel()); $this->assertEquals(true, $handler->getBubble()); - $this->assertSame($formatter, $handler->getFormatter()); } /** @@ -49,7 +43,7 @@ class AbstractHandlerTest extends TestCase $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); $handler->expects($this->exactly(2)) ->method('handle'); - $handler->handleBatch(array($this->getRecord(), $this->getRecord())); + $handler->handleBatch([$this->getRecord(), $this->getRecord()]); } /** @@ -57,7 +51,7 @@ class AbstractHandlerTest extends TestCase */ public function testIsHandling() { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array(Logger::WARNING, false)); + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', [Logger::WARNING, false]); $this->assertTrue($handler->isHandling($this->getRecord())); $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); } @@ -67,49 +61,9 @@ class AbstractHandlerTest extends TestCase */ public function testHandlesPsrStyleLevels() { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', array('warning', false)); + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler', ['warning', false]); $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG))); $handler->setLevel('debug'); $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG))); } - - /** - * @covers Monolog\Handler\AbstractHandler::getFormatter - * @covers Monolog\Handler\AbstractHandler::getDefaultFormatter - */ - public function testGetFormatterInitializesDefault() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); - $this->assertInstanceOf('Monolog\Formatter\LineFormatter', $handler->getFormatter()); - } - - /** - * @covers Monolog\Handler\AbstractHandler::pushProcessor - * @covers Monolog\Handler\AbstractHandler::popProcessor - * @expectedException LogicException - */ - public function testPushPopProcessor() - { - $logger = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); - $processor1 = new WebProcessor; - $processor2 = new WebProcessor; - - $logger->pushProcessor($processor1); - $logger->pushProcessor($processor2); - - $this->assertEquals($processor2, $logger->popProcessor()); - $this->assertEquals($processor1, $logger->popProcessor()); - $logger->popProcessor(); - } - - /** - * @covers Monolog\Handler\AbstractHandler::pushProcessor - * @expectedException InvalidArgumentException - */ - public function testPushProcessorWithNonCallable() - { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractHandler'); - - $handler->pushProcessor(new \stdClass()); - } } diff --git a/tests/Monolog/Handler/AbstractProcessingHandlerTest.php b/tests/Monolog/Handler/AbstractProcessingHandlerTest.php index 24d4f63..58d0920 100644 --- a/tests/Monolog/Handler/AbstractProcessingHandlerTest.php +++ b/tests/Monolog/Handler/AbstractProcessingHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,18 +11,30 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use Monolog\Processor\WebProcessor; +use Monolog\Formatter\LineFormatter; class AbstractProcessingHandlerTest extends TestCase { /** + * @covers Monolog\Handler\FormattableHandlerTrait::getFormatter + * @covers Monolog\Handler\FormattableHandlerTrait::setFormatter + */ + public function testConstructAndGetSet() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', [Logger::WARNING, false]); + $handler->setFormatter($formatter = new LineFormatter); + $this->assertSame($formatter, $handler->getFormatter()); + } + + /** * @covers Monolog\Handler\AbstractProcessingHandler::handle */ public function testHandleLowerLevelMessage() { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::WARNING, true)); + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', [Logger::WARNING, true]); $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); } @@ -31,7 +43,7 @@ class AbstractProcessingHandlerTest extends TestCase */ public function testHandleBubbling() { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::DEBUG, true)); + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', [Logger::DEBUG, true]); $this->assertFalse($handler->handle($this->getRecord())); } @@ -40,7 +52,7 @@ class AbstractProcessingHandlerTest extends TestCase */ public function testHandleNotBubbling() { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::DEBUG, false)); + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', [Logger::DEBUG, false]); $this->assertTrue($handler->handle($this->getRecord())); } @@ -49,7 +61,7 @@ class AbstractProcessingHandlerTest extends TestCase */ public function testHandleIsFalseWhenNotHandled() { - $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', array(Logger::WARNING, false)); + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler', [Logger::WARNING, false]); $this->assertTrue($handler->handle($this->getRecord())); $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG))); } @@ -60,13 +72,13 @@ class AbstractProcessingHandlerTest extends TestCase public function testProcessRecord() { $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler'); - $handler->pushProcessor(new WebProcessor(array( + $handler->pushProcessor(new WebProcessor([ 'REQUEST_URI' => '', 'REQUEST_METHOD' => '', 'REMOTE_ADDR' => '', 'SERVER_NAME' => '', 'UNIQUE_ID' => '', - ))); + ])); $handledRecord = null; $handler->expects($this->once()) ->method('write') @@ -77,4 +89,44 @@ class AbstractProcessingHandlerTest extends TestCase $handler->handle($this->getRecord()); $this->assertEquals(6, count($handledRecord['extra'])); } + + /** + * @covers Monolog\Handler\ProcessableHandlerTrait::pushProcessor + * @covers Monolog\Handler\ProcessableHandlerTrait::popProcessor + * @expectedException LogicException + */ + public function testPushPopProcessor() + { + $logger = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler'); + $processor1 = new WebProcessor; + $processor2 = new WebProcessor; + + $logger->pushProcessor($processor1); + $logger->pushProcessor($processor2); + + $this->assertEquals($processor2, $logger->popProcessor()); + $this->assertEquals($processor1, $logger->popProcessor()); + $logger->popProcessor(); + } + + /** + * @covers Monolog\Handler\ProcessableHandlerTrait::pushProcessor + * @expectedException TypeError + */ + public function testPushProcessorWithNonCallable() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler'); + + $handler->pushProcessor(new \stdClass()); + } + + /** + * @covers Monolog\Handler\FormattableHandlerTrait::getFormatter + * @covers Monolog\Handler\FormattableHandlerTrait::getDefaultFormatter + */ + public function testGetFormatterInitializesDefault() + { + $handler = $this->getMockForAbstractClass('Monolog\Handler\AbstractProcessingHandler'); + $this->assertInstanceOf(LineFormatter::class, $handler->getFormatter()); + } } diff --git a/tests/Monolog/Handler/AmqpHandlerTest.php b/tests/Monolog/Handler/AmqpHandlerTest.php index 8e0e723..414e64b 100644 --- a/tests/Monolog/Handler/AmqpHandlerTest.php +++ b/tests/Monolog/Handler/AmqpHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use PhpAmqpLib\Message\AMQPMessage; use PhpAmqpLib\Connection\AMQPConnection; @@ -31,43 +31,39 @@ class AmqpHandlerTest extends TestCase $this->markTestSkipped("Please update AMQP to version >= 1.0"); } - $messages = array(); + $messages = []; - $exchange = $this->getMock('AMQPExchange', array('publish', 'setName'), array(), '', false); - $exchange->expects($this->once()) - ->method('setName') - ->with('log') - ; + $exchange = $this->getMock('AMQPExchange', ['publish', 'setName'], [], '', false); $exchange->expects($this->any()) ->method('publish') - ->will($this->returnCallback(function ($message, $routing_key, $flags = 0, $attributes = array()) use (&$messages) { - $messages[] = array($message, $routing_key, $flags, $attributes); + ->will($this->returnCallback(function ($message, $routing_key, $flags = 0, $attributes = []) use (&$messages) { + $messages[] = [$message, $routing_key, $flags, $attributes]; })) ; - $handler = new AmqpHandler($exchange, 'log'); + $handler = new AmqpHandler($exchange); - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + $record = $this->getRecord(Logger::WARNING, 'test', ['data' => new \stdClass, 'foo' => 34]); - $expected = array( - array( + $expected = [ + [ 'message' => 'test', - 'context' => array( - 'data' => array(), + 'context' => [ + 'data' => [], 'foo' => 34, - ), + ], 'level' => 300, 'level_name' => 'WARNING', 'channel' => 'test', - 'extra' => array(), - ), - 'warn.test', + 'extra' => [], + ], + 'warning.test', 0, - array( + [ 'delivery_mode' => 2, 'content_type' => 'application/json', - ), - ); + ], + ]; $handler->handle($record); @@ -83,43 +79,43 @@ class AmqpHandlerTest extends TestCase $this->markTestSkipped("php-amqplib not installed"); } - $messages = array(); + $messages = []; - $exchange = $this->getMock('PhpAmqpLib\Channel\AMQPChannel', array('basic_publish', '__destruct'), array(), '', false); + $exchange = $this->getMock('PhpAmqpLib\Channel\AMQPChannel', ['basic_publish', '__destruct'], [], '', false); $exchange->expects($this->any()) ->method('basic_publish') ->will($this->returnCallback(function (AMQPMessage $msg, $exchange = "", $routing_key = "", $mandatory = false, $immediate = false, $ticket = null) use (&$messages) { - $messages[] = array($msg, $exchange, $routing_key, $mandatory, $immediate, $ticket); + $messages[] = [$msg, $exchange, $routing_key, $mandatory, $immediate, $ticket]; })) ; $handler = new AmqpHandler($exchange, 'log'); - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + $record = $this->getRecord(Logger::WARNING, 'test', ['data' => new \stdClass, 'foo' => 34]); - $expected = array( - array( + $expected = [ + [ 'message' => 'test', - 'context' => array( - 'data' => array(), + 'context' => [ + 'data' => [], 'foo' => 34, - ), + ], 'level' => 300, 'level_name' => 'WARNING', 'channel' => 'test', - 'extra' => array(), - ), + 'extra' => [], + ], 'log', - 'warn.test', + 'warning.test', false, false, null, - array( + [ 'delivery_mode' => 2, 'content_type' => 'application/json', - ), - ); + ], + ]; $handler->handle($record); diff --git a/tests/Monolog/Handler/BrowserConsoleHandlerTest.php b/tests/Monolog/Handler/BrowserConsoleHandlerTest.php index ffb1d74..048ee1c 100644 --- a/tests/Monolog/Handler/BrowserConsoleHandlerTest.php +++ b/tests/Monolog/Handler/BrowserConsoleHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -89,7 +89,7 @@ EOF; $handler = new BrowserConsoleHandler(); $handler->setFormatter($this->getIdentityFormatter()); - $handler->handle($this->getRecord(Logger::DEBUG, 'test', array('foo' => 'bar'))); + $handler->handle($this->getRecord(Logger::DEBUG, 'test', ['foo' => 'bar'])); $expected = <<<EOF (function (c) {if (c && c.groupCollapsed) { diff --git a/tests/Monolog/Handler/BufferHandlerTest.php b/tests/Monolog/Handler/BufferHandlerTest.php index da8b3c3..f1338b4 100644 --- a/tests/Monolog/Handler/BufferHandlerTest.php +++ b/tests/Monolog/Handler/BufferHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; class BufferHandlerTest extends TestCase @@ -47,7 +47,7 @@ class BufferHandlerTest extends TestCase $handler->handle($this->getRecord(Logger::WARNING)); $handler->handle($this->getRecord(Logger::DEBUG)); $this->shutdownCheckHandler = $test; - register_shutdown_function(array($this, 'checkPropagation')); + register_shutdown_function([$this, 'checkPropagation']); } public function checkPropagation() diff --git a/tests/Monolog/Handler/ChromePHPHandlerTest.php b/tests/Monolog/Handler/ChromePHPHandlerTest.php index ef3cd1c..c79818c 100644 --- a/tests/Monolog/Handler/ChromePHPHandlerTest.php +++ b/tests/Monolog/Handler/ChromePHPHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -32,17 +32,17 @@ class ChromePHPHandlerTest extends TestCase $handler->handle($this->getRecord(Logger::DEBUG)); $handler->handle($this->getRecord(Logger::WARNING)); - $expected = array( - 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( + $expected = [ + 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode([ 'version' => ChromePHPHandler::VERSION, - 'columns' => array('label', 'log', 'backtrace', 'type'), - 'rows' => array( + 'columns' => ['label', 'log', 'backtrace', 'type'], + 'rows' => [ 'test', 'test', - ), + ], 'request_uri' => '', - )))), - ); + ]))), + ]; $this->assertEquals($expected, $handler->getHeaders()); } @@ -56,33 +56,33 @@ class ChromePHPHandlerTest extends TestCase // overflow chrome headers limit $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 100 * 1024))); - $expected = array( - 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( + $expected = [ + 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode([ 'version' => ChromePHPHandler::VERSION, - 'columns' => array('label', 'log', 'backtrace', 'type'), - 'rows' => array( - array( + 'columns' => ['label', 'log', 'backtrace', 'type'], + 'rows' => [ + [ 'test', 'test', 'unknown', 'log', - ), - array( + ], + [ 'test', str_repeat('a', 150 * 1024), 'unknown', 'warn', - ), - array( + ], + [ 'monolog', 'Incomplete logs, chrome header size limit reached', 'unknown', 'warn', - ), - ), + ], + ], 'request_uri' => '', - )))), - ); + ]))), + ]; $this->assertEquals($expected, $handler->getHeaders()); } @@ -99,19 +99,19 @@ class ChromePHPHandlerTest extends TestCase $handler2->handle($this->getRecord(Logger::DEBUG)); $handler2->handle($this->getRecord(Logger::WARNING)); - $expected = array( - 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode(array( + $expected = [ + 'X-ChromeLogger-Data' => base64_encode(utf8_encode(json_encode([ 'version' => ChromePHPHandler::VERSION, - 'columns' => array('label', 'log', 'backtrace', 'type'), - 'rows' => array( + 'columns' => ['label', 'log', 'backtrace', 'type'], + 'rows' => [ 'test', 'test', 'test', 'test', - ), + ], 'request_uri' => '', - )))), - ); + ]))), + ]; $this->assertEquals($expected, $handler2->getHeaders()); } @@ -119,14 +119,14 @@ class ChromePHPHandlerTest extends TestCase class TestChromePHPHandler extends ChromePHPHandler { - protected $headers = array(); + protected $headers = []; public static function reset() { self::$initialized = false; self::$overflowed = false; self::$sendHeaders = true; - self::$json['rows'] = array(); + self::$json['rows'] = []; } protected function sendHeader($header, $content) diff --git a/tests/Monolog/Handler/CouchDBHandlerTest.php b/tests/Monolog/Handler/CouchDBHandlerTest.php index 9fc4b38..f89a130 100644 --- a/tests/Monolog/Handler/CouchDBHandlerTest.php +++ b/tests/Monolog/Handler/CouchDBHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,14 +11,14 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; class CouchDBHandlerTest extends TestCase { public function testHandle() { - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + $record = $this->getRecord(Logger::WARNING, 'test', ['data' => new \stdClass, 'foo' => 34]); $handler = new CouchDBHandler(); diff --git a/tests/Monolog/Handler/DeduplicationHandlerTest.php b/tests/Monolog/Handler/DeduplicationHandlerTest.php index e2aff86..491fd85 100644 --- a/tests/Monolog/Handler/DeduplicationHandlerTest.php +++ b/tests/Monolog/Handler/DeduplicationHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; class DeduplicationHandlerTest extends TestCase @@ -88,10 +88,10 @@ class DeduplicationHandlerTest extends TestCase $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0); $record = $this->getRecord(Logger::ERROR); - $record['datetime']->modify('+62seconds'); + $record['datetime'] = $record['datetime']->modify('+62seconds'); $handler->handle($record); $record = $this->getRecord(Logger::CRITICAL); - $record['datetime']->modify('+62seconds'); + $record['datetime'] = $record['datetime']->modify('+62seconds'); $handler->handle($record); $handler->flush(); @@ -115,13 +115,13 @@ class DeduplicationHandlerTest extends TestCase // handle two records from yesterday, and one recent $record = $this->getRecord(Logger::ERROR); - $record['datetime']->modify('-1day -10seconds'); + $record['datetime'] = $record['datetime']->modify('-1day -10seconds'); $handler->handle($record); $record2 = $this->getRecord(Logger::CRITICAL); - $record2['datetime']->modify('-1day -10seconds'); + $record2['datetime'] = $record2['datetime']->modify('-1day -10seconds'); $handler->handle($record2); $record3 = $this->getRecord(Logger::CRITICAL); - $record3['datetime']->modify('-30seconds'); + $record3['datetime'] = $record3['datetime']->modify('-30seconds'); $handler->handle($record3); // log is written as none of them are duplicate diff --git a/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php b/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php index d67da90..f72f323 100644 --- a/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php +++ b/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; class DoctrineCouchDBHandlerTest extends TestCase @@ -26,21 +26,21 @@ class DoctrineCouchDBHandlerTest extends TestCase public function testHandle() { $client = $this->getMockBuilder('Doctrine\\CouchDB\\CouchDBClient') - ->setMethods(array('postDocument')) + ->setMethods(['postDocument']) ->disableOriginalConstructor() ->getMock(); - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + $record = $this->getRecord(Logger::WARNING, 'test', ['data' => new \stdClass, 'foo' => 34]); - $expected = array( + $expected = [ 'message' => 'test', - 'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34), + 'context' => ['data' => ['stdClass' => []], 'foo' => 34], 'level' => Logger::WARNING, 'level_name' => 'WARNING', 'channel' => 'test', - 'datetime' => $record['datetime']->format('Y-m-d H:i:s'), - 'extra' => array(), - ); + 'datetime' => (string) $record['datetime'], + 'extra' => [], + ]; $client->expects($this->once()) ->method('postDocument') diff --git a/tests/Monolog/Handler/DynamoDbHandlerTest.php b/tests/Monolog/Handler/DynamoDbHandlerTest.php index f3a6968..652dc96 100644 --- a/tests/Monolog/Handler/DynamoDbHandlerTest.php +++ b/tests/Monolog/Handler/DynamoDbHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; class DynamoDbHandlerTest extends TestCase { @@ -24,7 +24,7 @@ class DynamoDbHandlerTest extends TestCase } $this->client = $this->getMockBuilder('Aws\DynamoDb\DynamoDbClient') - ->setMethods(array('formatAttributes', '__call')) + ->setMethods(['formatAttributes', '__call']) ->disableOriginalConstructor()->getMock(); } @@ -48,7 +48,7 @@ class DynamoDbHandlerTest extends TestCase { $record = $this->getRecord(); $formatter = $this->getMock('Monolog\Formatter\FormatterInterface'); - $formatted = array('foo' => 1, 'bar' => 2); + $formatted = ['foo' => 1, 'bar' => 2]; $handler = new DynamoDbHandler($this->client, 'foo'); $handler->setFormatter($formatter); @@ -65,10 +65,10 @@ class DynamoDbHandlerTest extends TestCase $this->client ->expects($this->once()) ->method('__call') - ->with('putItem', array(array( + ->with('putItem', [[ 'TableName' => 'foo', 'Item' => $formatted, - ))); + ]]); $handler->handle($record); } diff --git a/tests/Monolog/Handler/ElasticSearchHandlerTest.php b/tests/Monolog/Handler/ElasticSearchHandlerTest.php index 1687074..c92a72b 100644 --- a/tests/Monolog/Handler/ElasticSearchHandlerTest.php +++ b/tests/Monolog/Handler/ElasticSearchHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -13,7 +13,7 @@ namespace Monolog\Handler; use Monolog\Formatter\ElasticaFormatter; use Monolog\Formatter\NormalizerFormatter; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use Elastica\Client; use Elastica\Request; @@ -29,10 +29,10 @@ class ElasticSearchHandlerTest extends TestCase /** * @var array Default handler options */ - protected $options = array( + protected $options = [ 'index' => 'my_index', 'type' => 'doc_type', - ); + ]; public function setUp() { @@ -43,7 +43,7 @@ class ElasticSearchHandlerTest extends TestCase // base mock Elastica Client object $this->client = $this->getMockBuilder('Elastica\Client') - ->setMethods(array('addDocuments')) + ->setMethods(['addDocuments']) ->disableOriginalConstructor() ->getMock(); } @@ -57,19 +57,19 @@ class ElasticSearchHandlerTest extends TestCase public function testHandle() { // log message - $msg = array( + $msg = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => ['foo' => 7, 'bar', 'class' => new \stdClass], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; // format expected result $formatter = new ElasticaFormatter($this->options['index'], $this->options['type']); - $expected = array($formatter->format($msg)); + $expected = [$formatter->format($msg)]; // setup ES client mock $this->client->expects($this->any()) @@ -79,7 +79,7 @@ class ElasticSearchHandlerTest extends TestCase // perform tests $handler = new ElasticSearchHandler($this->client, $this->options); $handler->handle($msg); - $handler->handleBatch(array($msg)); + $handler->handleBatch([$msg]); } /** @@ -113,11 +113,11 @@ class ElasticSearchHandlerTest extends TestCase */ public function testOptions() { - $expected = array( + $expected = [ 'index' => $this->options['index'], 'type' => $this->options['type'], 'ignore_error' => false, - ); + ]; $handler = new ElasticSearchHandler($this->client, $this->options); $this->assertEquals($expected, $handler->getOptions()); } @@ -128,9 +128,9 @@ class ElasticSearchHandlerTest extends TestCase */ public function testConnectionErrors($ignore, $expectedError) { - $clientOpts = array('host' => '127.0.0.1', 'port' => 1); + $clientOpts = ['host' => '127.0.0.1', 'port' => 1]; $client = new Client($clientOpts); - $handlerOpts = array('ignore_error' => $ignore); + $handlerOpts = ['ignore_error' => $ignore]; $handler = new ElasticSearchHandler($client, $handlerOpts); if ($expectedError) { @@ -146,10 +146,10 @@ class ElasticSearchHandlerTest extends TestCase */ public function providerTestConnectionErrors() { - return array( - array(false, array('RuntimeException', 'Error sending messages to Elasticsearch')), - array(true, false), - ); + return [ + [false, ['RuntimeException', 'Error sending messages to Elasticsearch']], + [true, false], + ]; } /** @@ -162,28 +162,28 @@ class ElasticSearchHandlerTest extends TestCase */ public function testHandleIntegration() { - $msg = array( + $msg = [ 'level' => Logger::ERROR, 'level_name' => 'ERROR', 'channel' => 'meh', - 'context' => array('foo' => 7, 'bar', 'class' => new \stdClass), - 'datetime' => new \DateTime("@0"), - 'extra' => array(), + 'context' => ['foo' => 7, 'bar', 'class' => new \stdClass], + 'datetime' => new \DateTimeImmutable("@0"), + 'extra' => [], 'message' => 'log', - ); + ]; $expected = $msg; $expected['datetime'] = $msg['datetime']->format(\DateTime::ISO8601); - $expected['context'] = array( + $expected['context'] = [ 'class' => '[object] (stdClass: {})', 'foo' => 7, 0 => 'bar', - ); + ]; $client = new Client(); $handler = new ElasticSearchHandler($client, $this->options); try { - $handler->handleBatch(array($msg)); + $handler->handleBatch([$msg]); } catch (\RuntimeException $e) { $this->markTestSkipped("Cannot connect to Elastic Search server on localhost"); } @@ -234,6 +234,6 @@ class ElasticSearchHandlerTest extends TestCase return $data['_source']; } - return array(); + return []; } } diff --git a/tests/Monolog/Handler/ErrorLogHandlerTest.php b/tests/Monolog/Handler/ErrorLogHandlerTest.php index 99785cb..d230fb1 100644 --- a/tests/Monolog/Handler/ErrorLogHandlerTest.php +++ b/tests/Monolog/Handler/ErrorLogHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use Monolog\Formatter\LineFormatter; @@ -24,7 +24,7 @@ class ErrorLogHandlerTest extends TestCase { protected function setUp() { - $GLOBALS['error_log'] = array(); + $GLOBALS['error_log'] = []; } /** diff --git a/tests/Monolog/Handler/FilterHandlerTest.php b/tests/Monolog/Handler/FilterHandlerTest.php index 31b7686..0e64e76 100644 --- a/tests/Monolog/Handler/FilterHandlerTest.php +++ b/tests/Monolog/Handler/FilterHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; class FilterHandlerTest extends TestCase { @@ -63,7 +63,7 @@ class FilterHandlerTest extends TestCase $this->assertFalse($test->hasEmergencyRecords()); $test = new TestHandler(); - $handler = new FilterHandler($test, array(Logger::INFO, Logger::ERROR)); + $handler = new FilterHandler($test, [Logger::INFO, Logger::ERROR]); $handler->handle($this->getRecord(Logger::DEBUG)); $this->assertFalse($test->hasDebugRecords()); @@ -86,14 +86,14 @@ class FilterHandlerTest extends TestCase $test = new TestHandler(); $handler = new FilterHandler($test); - $levels = array(Logger::INFO, Logger::ERROR); + $levels = [Logger::INFO, Logger::ERROR]; $handler->setAcceptedLevels($levels); $this->assertSame($levels, $handler->getAcceptedLevels()); - $handler->setAcceptedLevels(array('info', 'error')); + $handler->setAcceptedLevels(['info', 'error']); $this->assertSame($levels, $handler->getAcceptedLevels()); - $levels = array(Logger::CRITICAL, Logger::ALERT, Logger::EMERGENCY); + $levels = [Logger::CRITICAL, Logger::ALERT, Logger::EMERGENCY]; $handler->setAcceptedLevels(Logger::CRITICAL, Logger::EMERGENCY); $this->assertSame($levels, $handler->getAcceptedLevels()); diff --git a/tests/Monolog/Handler/FingersCrossedHandlerTest.php b/tests/Monolog/Handler/FingersCrossedHandlerTest.php index b92bf43..5b25a36 100644 --- a/tests/Monolog/Handler/FingersCrossedHandlerTest.php +++ b/tests/Monolog/Handler/FingersCrossedHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy; use Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy; @@ -114,8 +114,8 @@ class FingersCrossedHandlerTest extends TestCase { $test = new TestHandler(); $handler = new FingersCrossedHandler(function ($record, $handler) use ($test) { - return $test; - }); + return $test; + }); $handler->handle($this->getRecord(Logger::DEBUG)); $handler->handle($this->getRecord(Logger::INFO)); $this->assertFalse($test->hasDebugRecords()); @@ -133,8 +133,8 @@ class FingersCrossedHandlerTest extends TestCase public function testHandleWithBadCallbackThrowsException() { $handler = new FingersCrossedHandler(function ($record, $handler) { - return 'foo'; - }); + return 'foo'; + }); $handler->handle($this->getRecord(Logger::WARNING)); } @@ -203,7 +203,7 @@ class FingersCrossedHandlerTest extends TestCase public function testChannelLevelActivationStrategy() { $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy(Logger::ERROR, array('othertest' => Logger::DEBUG))); + $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy(Logger::ERROR, ['othertest' => Logger::DEBUG])); $handler->handle($this->getRecord(Logger::WARNING)); $this->assertFalse($test->hasWarningRecords()); $record = $this->getRecord(Logger::DEBUG); @@ -220,7 +220,7 @@ class FingersCrossedHandlerTest extends TestCase public function testChannelLevelActivationStrategyWithPsrLevels() { $test = new TestHandler(); - $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy('error', array('othertest' => 'debug'))); + $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy('error', ['othertest' => 'debug'])); $handler->handle($this->getRecord(Logger::WARNING)); $this->assertFalse($test->hasWarningRecords()); $record = $this->getRecord(Logger::DEBUG); diff --git a/tests/Monolog/Handler/FirePHPHandlerTest.php b/tests/Monolog/Handler/FirePHPHandlerTest.php index 0eb10a6..b62e7fd 100644 --- a/tests/Monolog/Handler/FirePHPHandlerTest.php +++ b/tests/Monolog/Handler/FirePHPHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -32,13 +32,13 @@ class FirePHPHandlerTest extends TestCase $handler->handle($this->getRecord(Logger::DEBUG)); $handler->handle($this->getRecord(Logger::WARNING)); - $expected = array( + $expected = [ 'X-Wf-Protocol-1' => 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2', 'X-Wf-1-Structure-1' => 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1', 'X-Wf-1-Plugin-1' => 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3', 'X-Wf-1-1-1-1' => 'test', 'X-Wf-1-1-1-2' => 'test', - ); + ]; $this->assertEquals($expected, $handler->getHeaders()); } @@ -55,18 +55,18 @@ class FirePHPHandlerTest extends TestCase $handler2->handle($this->getRecord(Logger::DEBUG)); $handler2->handle($this->getRecord(Logger::WARNING)); - $expected = array( + $expected = [ 'X-Wf-Protocol-1' => 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2', 'X-Wf-1-Structure-1' => 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1', 'X-Wf-1-Plugin-1' => 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3', 'X-Wf-1-1-1-1' => 'test', 'X-Wf-1-1-1-2' => 'test', - ); + ]; - $expected2 = array( + $expected2 = [ 'X-Wf-1-1-1-3' => 'test', 'X-Wf-1-1-1-4' => 'test', - ); + ]; $this->assertEquals($expected, $handler->getHeaders()); $this->assertEquals($expected2, $handler2->getHeaders()); @@ -75,7 +75,7 @@ class FirePHPHandlerTest extends TestCase class TestFirePHPHandler extends FirePHPHandler { - protected $headers = array(); + protected $headers = []; public static function reset() { diff --git a/tests/Monolog/Handler/FleepHookHandlerTest.php b/tests/Monolog/Handler/FleepHookHandlerTest.php index 91cdd31..11b5a65 100644 --- a/tests/Monolog/Handler/FleepHookHandlerTest.php +++ b/tests/Monolog/Handler/FleepHookHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -13,7 +13,7 @@ namespace Monolog\Handler; use Monolog\Formatter\LineFormatter; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; /** * @coversDefaultClass \Monolog\Handler\FleepHookHandler @@ -56,15 +56,15 @@ class FleepHookHandlerTest extends TestCase */ public function testHandlerUsesLineFormatterWhichIgnoresEmptyArrays() { - $record = array( + $record = [ 'message' => 'msg', - 'context' => array(), + 'context' => [], 'level' => Logger::DEBUG, 'level_name' => Logger::getLevelName(Logger::DEBUG), 'channel' => 'channel', - 'datetime' => new \DateTime(), - 'extra' => array(), - ); + 'datetime' => new \DateTimeImmutable(), + 'extra' => [], + ]; $expectedFormatter = new LineFormatter(null, null, true, true); $expected = $expectedFormatter->format($record); diff --git a/tests/Monolog/Handler/FlowdockHandlerTest.php b/tests/Monolog/Handler/FlowdockHandlerTest.php index 4b120d5..8df847a 100644 --- a/tests/Monolog/Handler/FlowdockHandlerTest.php +++ b/tests/Monolog/Handler/FlowdockHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Handler; use Monolog\Formatter\FlowdockFormatter; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -61,11 +61,11 @@ class FlowdockHandlerTest extends TestCase private function createHandler($token = 'myToken') { - $constructorArgs = array($token, Logger::DEBUG); + $constructorArgs = [$token, Logger::DEBUG]; $this->res = fopen('php://memory', 'a'); $this->handler = $this->getMock( '\Monolog\Handler\FlowdockHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), + ['fsockopen', 'streamSetTimeout', 'closeSocket'], $constructorArgs ); diff --git a/tests/Monolog/Handler/GelfHandlerLegacyTest.php b/tests/Monolog/Handler/GelfHandlerLegacyTest.php index 9d007b1..00150a1 100644 --- a/tests/Monolog/Handler/GelfHandlerLegacyTest.php +++ b/tests/Monolog/Handler/GelfHandlerLegacyTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Handler; use Gelf\Message; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use Monolog\Formatter\GelfMessageFormatter; diff --git a/tests/Monolog/Handler/GelfHandlerTest.php b/tests/Monolog/Handler/GelfHandlerTest.php index 8cdd64f..bc06fa3 100644 --- a/tests/Monolog/Handler/GelfHandlerTest.php +++ b/tests/Monolog/Handler/GelfHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Handler; use Gelf\Message; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use Monolog\Formatter\GelfMessageFormatter; @@ -43,7 +43,7 @@ class GelfHandlerTest extends TestCase protected function getMessagePublisher() { - return $this->getMock('Gelf\Publisher', array('publish'), array(), '', false); + return $this->getMock('Gelf\Publisher', ['publish'], [], '', false); } public function testDebug() diff --git a/tests/Monolog/Handler/GelfMockMessagePublisher.php b/tests/Monolog/Handler/GelfMockMessagePublisher.php index 873d92f..b1e94ed 100644 --- a/tests/Monolog/Handler/GelfMockMessagePublisher.php +++ b/tests/Monolog/Handler/GelfMockMessagePublisher.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. diff --git a/tests/Monolog/Handler/GroupHandlerTest.php b/tests/Monolog/Handler/GroupHandlerTest.php index a1b8617..d0ffdf0 100644 --- a/tests/Monolog/Handler/GroupHandlerTest.php +++ b/tests/Monolog/Handler/GroupHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; class GroupHandlerTest extends TestCase @@ -22,7 +22,7 @@ class GroupHandlerTest extends TestCase */ public function testConstructorOnlyTakesHandler() { - new GroupHandler(array(new TestHandler(), "foo")); + new GroupHandler([new TestHandler(), "foo"]); } /** @@ -31,7 +31,7 @@ class GroupHandlerTest extends TestCase */ public function testHandle() { - $testHandlers = array(new TestHandler(), new TestHandler()); + $testHandlers = [new TestHandler(), new TestHandler()]; $handler = new GroupHandler($testHandlers); $handler->handle($this->getRecord(Logger::DEBUG)); $handler->handle($this->getRecord(Logger::INFO)); @@ -47,9 +47,9 @@ class GroupHandlerTest extends TestCase */ public function testHandleBatch() { - $testHandlers = array(new TestHandler(), new TestHandler()); + $testHandlers = [new TestHandler(), new TestHandler()]; $handler = new GroupHandler($testHandlers); - $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); + $handler->handleBatch([$this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO)]); foreach ($testHandlers as $test) { $this->assertTrue($test->hasDebugRecords()); $this->assertTrue($test->hasInfoRecords()); @@ -62,7 +62,7 @@ class GroupHandlerTest extends TestCase */ public function testIsHandling() { - $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING)); + $testHandlers = [new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING)]; $handler = new GroupHandler($testHandlers); $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR))); $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING))); @@ -75,7 +75,7 @@ class GroupHandlerTest extends TestCase public function testHandleUsesProcessors() { $test = new TestHandler(); - $handler = new GroupHandler(array($test)); + $handler = new GroupHandler([$test]); $handler->pushProcessor(function ($record) { $record['extra']['foo'] = true; @@ -92,14 +92,14 @@ class GroupHandlerTest extends TestCase */ public function testHandleBatchUsesProcessors() { - $testHandlers = array(new TestHandler(), new TestHandler()); + $testHandlers = [new TestHandler(), new TestHandler()]; $handler = new GroupHandler($testHandlers); $handler->pushProcessor(function ($record) { $record['extra']['foo'] = true; return $record; }); - $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); + $handler->handleBatch([$this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO)]); foreach ($testHandlers as $test) { $this->assertTrue($test->hasDebugRecords()); $this->assertTrue($test->hasInfoRecords()); diff --git a/tests/Monolog/Handler/HandlerWrapperTest.php b/tests/Monolog/Handler/HandlerWrapperTest.php index d8d0452..4a34741 100644 --- a/tests/Monolog/Handler/HandlerWrapperTest.php +++ b/tests/Monolog/Handler/HandlerWrapperTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; /** * @author Alexey Karapetov <alexey@karapetov.com> @@ -37,10 +37,10 @@ class HandlerWrapperTest extends TestCase */ public function trueFalseDataProvider() { - return array( - array(true), - array(false), - ); + return [ + [true], + [false], + ]; } /** @@ -87,44 +87,4 @@ class HandlerWrapperTest extends TestCase $this->assertEquals($result, $this->wrapper->handleBatch($records)); } - - public function testPushProcessor() - { - $processor = function () {}; - $this->handler->expects($this->once()) - ->method('pushProcessor') - ->with($processor); - - $this->assertEquals($this->wrapper, $this->wrapper->pushProcessor($processor)); - } - - public function testPopProcessor() - { - $processor = function () {}; - $this->handler->expects($this->once()) - ->method('popProcessor') - ->willReturn($processor); - - $this->assertEquals($processor, $this->wrapper->popProcessor()); - } - - public function testSetFormatter() - { - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $this->handler->expects($this->once()) - ->method('setFormatter') - ->with($formatter); - - $this->assertEquals($this->wrapper, $this->wrapper->setFormatter($formatter)); - } - - public function testGetFormatter() - { - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $this->handler->expects($this->once()) - ->method('getFormatter') - ->willReturn($formatter); - - $this->assertEquals($formatter, $this->wrapper->getFormatter()); - } } diff --git a/tests/Monolog/Handler/HipChatHandlerTest.php b/tests/Monolog/Handler/HipChatHandlerTest.php index 52dc9da..0d2e8c0 100644 --- a/tests/Monolog/Handler/HipChatHandlerTest.php +++ b/tests/Monolog/Handler/HipChatHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -24,30 +24,6 @@ class HipChatHandlerTest extends TestCase /** @var HipChatHandler */ private $handler; - public function testWriteHeader() - { - $this->createHandler(); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/v1\/rooms\/message\?format=json&auth_token=.* HTTP\/1.1\\r\\nHost: api.hipchat.com\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - - public function testWriteCustomHostHeader() - { - $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/POST \/v1\/rooms\/message\?format=json&auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content); - - return $content; - } - public function testWriteV2() { $this->createHandler('myToken', 'room1', 'Monolog', false, 'hipchat.foo.bar', 'v2'); @@ -92,18 +68,6 @@ class HipChatHandlerTest extends TestCase $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content); } - public function testWriteContentV1WithoutName() - { - $this->createHandler('myToken', 'room1', null, false, 'hipchat.foo.bar', 'v1'); - $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1')); - fseek($this->res, 0); - $content = fread($this->res, 1024); - - $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=$/', $content); - - return $content; - } - /** * @depends testWriteCustomHostHeader */ @@ -175,16 +139,16 @@ class HipChatHandlerTest extends TestCase public function provideLevelColors() { - return array( - array(Logger::DEBUG, 'gray'), - array(Logger::INFO, 'green'), - array(Logger::WARNING, 'yellow'), - array(Logger::ERROR, 'red'), - array(Logger::CRITICAL, 'red'), - array(Logger::ALERT, 'red'), - array(Logger::EMERGENCY,'red'), - array(Logger::NOTICE, 'green'), - ); + return [ + [Logger::DEBUG, 'gray'], + [Logger::INFO, 'green'], + [Logger::WARNING, 'yellow'], + [Logger::ERROR, 'red'], + [Logger::CRITICAL, 'red'], + [Logger::ALERT, 'red'], + [Logger::EMERGENCY,'red'], + [Logger::NOTICE, 'green'], + ]; } /** @@ -204,45 +168,45 @@ class HipChatHandlerTest extends TestCase public function provideBatchRecords() { - return array( - array( - array( - array('level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \DateTime()), - array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), - array('level' => Logger::CRITICAL, 'message' => 'Everything is broken!', 'level_name' => 'critical', 'datetime' => new \DateTime()), - ), + return [ + [ + [ + ['level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \DateTimeImmutable()], + ['level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTimeImmutable()], + ['level' => Logger::CRITICAL, 'message' => 'Everything is broken!', 'level_name' => 'critical', 'datetime' => new \DateTimeImmutable()], + ], 'red', - ), - array( - array( - array('level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \DateTime()), - array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), - ), + ], + [ + [ + ['level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \DateTimeImmutable()], + ['level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTimeImmutable()], + ], 'yellow', - ), - array( - array( - array('level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \DateTime()), - array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTime()), - ), + ], + [ + [ + ['level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \DateTimeImmutable()], + ['level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \DateTimeImmutable()], + ], 'green', - ), - array( - array( - array('level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \DateTime()), - ), + ], + [ + [ + ['level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \DateTimeImmutable()], + ], 'gray', - ), - ); + ], + ]; } private function createHandler($token = 'myToken', $room = 'room1', $name = 'Monolog', $notify = false, $host = 'api.hipchat.com', $version = 'v1') { - $constructorArgs = array($token, $room, $name, $notify, Logger::DEBUG, true, true, 'text', $host, $version); + $constructorArgs = [$token, $room, $name, $notify, Logger::DEBUG, true, true, 'text', $host, $version]; $this->res = fopen('php://memory', 'a'); $this->handler = $this->getMock( '\Monolog\Handler\HipChatHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), + ['fsockopen', 'streamSetTimeout', 'closeSocket'], $constructorArgs ); @@ -263,14 +227,6 @@ class HipChatHandlerTest extends TestCase $this->handler->setFormatter($this->getIdentityFormatter()); } - /** - * @expectedException InvalidArgumentException - */ - public function testCreateWithTooLongName() - { - $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere'); - } - public function testCreateWithTooLongNameV2() { // creating a handler with too long of a name but using the v2 api doesn't matter. diff --git a/tests/Monolog/Handler/LogEntriesHandlerTest.php b/tests/Monolog/Handler/LogEntriesHandlerTest.php index b2deb40..b6d2924 100644 --- a/tests/Monolog/Handler/LogEntriesHandlerTest.php +++ b/tests/Monolog/Handler/LogEntriesHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -37,33 +37,33 @@ class LogEntriesHandlerTest extends TestCase fseek($this->res, 0); $content = fread($this->res, 1024); - $this->assertRegexp('/testToken \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] test.CRITICAL: Critical write test/', $content); + $this->assertRegexp('/testToken \[\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}\+00:00\] test.CRITICAL: Critical write test/', $content); } public function testWriteBatchContent() { - $records = array( + $records = [ $this->getRecord(), $this->getRecord(), $this->getRecord(), - ); + ]; $this->createHandler(); $this->handler->handleBatch($records); fseek($this->res, 0); $content = fread($this->res, 1024); - $this->assertRegexp('/(testToken \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] .* \[\] \[\]\n){3}/', $content); + $this->assertRegexp('/(testToken \[\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}\+00:00\] .* \[\] \[\]\n){3}/', $content); } private function createHandler() { $useSSL = extension_loaded('openssl'); - $args = array('testToken', $useSSL, Logger::DEBUG, true); + $args = ['testToken', $useSSL, Logger::DEBUG, true]; $this->res = fopen('php://memory', 'a'); $this->handler = $this->getMock( '\Monolog\Handler\LogEntriesHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), + ['fsockopen', 'streamSetTimeout', 'closeSocket'], $args ); diff --git a/tests/Monolog/Handler/LogmaticHandlerTest.php b/tests/Monolog/Handler/LogmaticHandlerTest.php new file mode 100644 index 0000000..3948a41 --- /dev/null +++ b/tests/Monolog/Handler/LogmaticHandlerTest.php @@ -0,0 +1,84 @@ +<?php declare(strict_types=1); + +/* + * This file is part of the Monolog package. + * + * (c) Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Test\TestCase; +use Monolog\Logger; + +/** + * @author Julien Breux <julien.breux@gmail.com> + */ +class LogmaticHandlerTest extends TestCase +{ + /** + * @var resource + */ + private $res; + + /** + * @var LogmaticHandler + */ + private $handler; + + public function testWriteContent() + { + $this->createHandler(); + $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Critical write test')); + + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/testToken {"message":"Critical write test","context":\[\],"level":500,"level_name":"CRITICAL","channel":"test","datetime":"(.*)","extra":\[\],"hostname":"testHostname","appname":"testAppname"}/', $content); + } + + public function testWriteBatchContent() + { + $records = [ + $this->getRecord(), + $this->getRecord(), + $this->getRecord(), + ]; + $this->createHandler(); + $this->handler->handleBatch($records); + + fseek($this->res, 0); + $content = fread($this->res, 1024); + + $this->assertRegexp('/testToken {"message":"test","context":\[\],"level":300,"level_name":"WARNING","channel":"test","datetime":"(.*)","extra":\[\],"hostname":"testHostname","appname":"testAppname"}/', $content); + } + + private function createHandler() + { + $useSSL = extension_loaded('openssl'); + $args = ['testToken', 'testHostname', 'testAppname', $useSSL, Logger::DEBUG, true]; + $this->res = fopen('php://memory', 'a'); + $this->handler = $this->getMock( + '\Monolog\Handler\LogmaticHandler', + ['fsockopen', 'streamSetTimeout', 'closeSocket'], + $args + ); + + $reflectionProperty = new \ReflectionProperty('\Monolog\Handler\SocketHandler', 'connectionString'); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($this->handler, 'localhost:1234'); + + $this->handler->expects($this->any()) + ->method('fsockopen') + ->will($this->returnValue($this->res)); + $this->handler->expects($this->any()) + ->method('streamSetTimeout') + ->will($this->returnValue(true)); + $this->handler->expects($this->any()) + ->method('closeSocket') + ->will($this->returnValue(true)); + } +} diff --git a/tests/Monolog/Handler/MailHandlerTest.php b/tests/Monolog/Handler/MailHandlerTest.php index 6754f3d..ee686ad 100644 --- a/tests/Monolog/Handler/MailHandlerTest.php +++ b/tests/Monolog/Handler/MailHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; class MailHandlerTest extends TestCase { @@ -25,7 +25,7 @@ class MailHandlerTest extends TestCase $formatter->expects($this->once()) ->method('formatBatch'); // Each record is formatted - $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); + $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler', [], '', true, true, true, ['send', 'write']); $handler->expects($this->once()) ->method('send'); $handler->expects($this->never()) @@ -41,11 +41,11 @@ class MailHandlerTest extends TestCase */ public function testHandleBatchNotSendsMailIfMessagesAreBelowLevel() { - $records = array( + $records = [ $this->getRecord(Logger::DEBUG, 'debug message 1'), $this->getRecord(Logger::DEBUG, 'debug message 2'), $this->getRecord(Logger::INFO, 'information'), - ); + ]; $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); $handler->expects($this->never()) @@ -61,10 +61,11 @@ class MailHandlerTest extends TestCase public function testHandle() { $handler = $this->getMockForAbstractClass('Monolog\\Handler\\MailHandler'); + $handler->setFormatter(new \Monolog\Formatter\LineFormatter); $record = $this->getRecord(); - $records = array($record); - $records[0]['formatted'] = '['.$record['datetime']->format('Y-m-d H:i:s').'] test.WARNING: test [] []'."\n"; + $records = [$record]; + $records[0]['formatted'] = '['.$record['datetime'].'] test.WARNING: test [] []'."\n"; $handler->expects($this->once()) ->method('send') diff --git a/tests/Monolog/Handler/MockRavenClient.php b/tests/Monolog/Handler/MockRavenClient.php index a083322..d344d34 100644 --- a/tests/Monolog/Handler/MockRavenClient.php +++ b/tests/Monolog/Handler/MockRavenClient.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. diff --git a/tests/Monolog/Handler/MongoDBHandlerTest.php b/tests/Monolog/Handler/MongoDBHandlerTest.php index 0fdef63..7333ef6 100644 --- a/tests/Monolog/Handler/MongoDBHandlerTest.php +++ b/tests/Monolog/Handler/MongoDBHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,8 +11,9 @@ namespace Monolog\Handler; -use Monolog\TestCase; -use Monolog\Logger; +use MongoDB\Driver\Manager; +use Monolog\Test\TestCase; +use Monolog\Formatter\NormalizerFormatter; class MongoDBHandlerTest extends TestCase { @@ -21,45 +22,57 @@ class MongoDBHandlerTest extends TestCase */ public function testConstructorShouldThrowExceptionForInvalidMongo() { - new MongoDBHandler(new \stdClass(), 'DB', 'Collection'); + new MongoDBHandler(new \stdClass, 'db', 'collection'); } - public function testHandle() + public function testHandleWithLibraryClient() { - $mongo = $this->getMock('Mongo', array('selectCollection'), array(), '', false); - $collection = $this->getMock('stdClass', array('save')); + if (!(class_exists('MongoDB\Client'))) { + $this->markTestSkipped('mongodb/mongodb not installed'); + } + + $mongodb = $this->getMockBuilder('MongoDB\Client') + ->disableOriginalConstructor() + ->getMock(); - $mongo->expects($this->once()) + $collection = $this->getMockBuilder('MongoDB\Collection') + ->disableOriginalConstructor() + ->getMock(); + + $mongodb->expects($this->once()) ->method('selectCollection') - ->with('DB', 'Collection') + ->with('db', 'collection') ->will($this->returnValue($collection)); - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); - - $expected = array( - 'message' => 'test', - 'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34), - 'level' => Logger::WARNING, - 'level_name' => 'WARNING', - 'channel' => 'test', - 'datetime' => $record['datetime']->format('Y-m-d H:i:s'), - 'extra' => array(), - ); + $record = $this->getRecord(); + $expected = $record; + $expected['datetime'] = $record['datetime']->format(NormalizerFormatter::SIMPLE_DATE); $collection->expects($this->once()) - ->method('save') + ->method('insertOne') ->with($expected); - $handler = new MongoDBHandler($mongo, 'DB', 'Collection'); + $handler = new MongoDBHandler($mongodb, 'db', 'collection'); $handler->handle($record); } -} -if (!class_exists('Mongo')) { - class Mongo + public function testHandleWithDriverManager() { - public function selectCollection() - { + if (!(class_exists('MongoDB\Driver\Manager'))) { + $this->markTestSkipped('ext-mongodb not installed'); + } + + /* This can become a unit test once ManagerInterface can be mocked. + * See: https://jira.mongodb.org/browse/PHPC-378 + */ + $mongodb = new Manager('mongodb://localhost:27017'); + $handler = new MongoDBHandler($mongodb, 'test', 'monolog'); + $record = $this->getRecord(); + + try { + $handler->handle($record); + } catch (\RuntimeException $e) { + $this->markTestSkipped('Could not connect to MongoDB server on mongodb://localhost:27017'); } } } diff --git a/tests/Monolog/Handler/NativeMailerHandlerTest.php b/tests/Monolog/Handler/NativeMailerHandlerTest.php index ddf545d..d4aef95 100644 --- a/tests/Monolog/Handler/NativeMailerHandlerTest.php +++ b/tests/Monolog/Handler/NativeMailerHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use InvalidArgumentException; @@ -24,7 +24,7 @@ class NativeMailerHandlerTest extends TestCase { protected function setUp() { - $GLOBALS['mail'] = array(); + $GLOBALS['mail'] = []; } /** @@ -50,7 +50,7 @@ class NativeMailerHandlerTest extends TestCase public function testSetterArrayHeaderInjection() { $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org'); - $mailer->addHeader(array("Content-Type: text/html\r\nFrom: faked@attacker.org")); + $mailer->addHeader(["Content-Type: text/html\r\nFrom: faked@attacker.org"]); } /** @@ -78,7 +78,8 @@ class NativeMailerHandlerTest extends TestCase $from = 'receiver@example.org'; $mailer = new NativeMailerHandler($to, $subject, $from); - $mailer->handleBatch(array()); + $mailer->setFormatter(new \Monolog\Formatter\LineFormatter); + $mailer->handleBatch([]); // batch is empty, nothing sent $this->assertEmpty($GLOBALS['mail']); diff --git a/tests/Monolog/Handler/NewRelicHandlerTest.php b/tests/Monolog/Handler/NewRelicHandlerTest.php index 4d3a615..a71bbf8 100644 --- a/tests/Monolog/Handler/NewRelicHandlerTest.php +++ b/tests/Monolog/Handler/NewRelicHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Handler; use Monolog\Formatter\LineFormatter; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; class NewRelicHandlerTest extends TestCase @@ -24,7 +24,7 @@ class NewRelicHandlerTest extends TestCase public function setUp() { self::$appname = null; - self::$customParameters = array(); + self::$customParameters = []; self::$transactionName = null; } @@ -46,8 +46,8 @@ class NewRelicHandlerTest extends TestCase public function testThehandlerCanAddContextParamsToTheNewRelicTrace() { $handler = new StubNewRelicHandler(); - $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('a' => 'b'))); - $this->assertEquals(array('context_a' => 'b'), self::$customParameters); + $handler->handle($this->getRecord(Logger::ERROR, 'log message', ['a' => 'b'])); + $this->assertEquals(['context_a' => 'b'], self::$customParameters); } public function testThehandlerCanAddExplodedContextParamsToTheNewRelicTrace() @@ -56,10 +56,10 @@ class NewRelicHandlerTest extends TestCase $handler->handle($this->getRecord( Logger::ERROR, 'log message', - array('a' => array('key1' => 'value1', 'key2' => 'value2')) + ['a' => ['key1' => 'value1', 'key2' => 'value2']] )); $this->assertEquals( - array('context_a_key1' => 'value1', 'context_a_key2' => 'value2'), + ['context_a_key1' => 'value1', 'context_a_key2' => 'value2'], self::$customParameters ); } @@ -67,40 +67,40 @@ class NewRelicHandlerTest extends TestCase public function testThehandlerCanAddExtraParamsToTheNewRelicTrace() { $record = $this->getRecord(Logger::ERROR, 'log message'); - $record['extra'] = array('c' => 'd'); + $record['extra'] = ['c' => 'd']; $handler = new StubNewRelicHandler(); $handler->handle($record); - $this->assertEquals(array('extra_c' => 'd'), self::$customParameters); + $this->assertEquals(['extra_c' => 'd'], self::$customParameters); } public function testThehandlerCanAddExplodedExtraParamsToTheNewRelicTrace() { $record = $this->getRecord(Logger::ERROR, 'log message'); - $record['extra'] = array('c' => array('key1' => 'value1', 'key2' => 'value2')); + $record['extra'] = ['c' => ['key1' => 'value1', 'key2' => 'value2']]; $handler = new StubNewRelicHandler(Logger::ERROR, true, self::$appname, true); $handler->handle($record); $this->assertEquals( - array('extra_c_key1' => 'value1', 'extra_c_key2' => 'value2'), + ['extra_c_key1' => 'value1', 'extra_c_key2' => 'value2'], self::$customParameters ); } public function testThehandlerCanAddExtraContextAndParamsToTheNewRelicTrace() { - $record = $this->getRecord(Logger::ERROR, 'log message', array('a' => 'b')); - $record['extra'] = array('c' => 'd'); + $record = $this->getRecord(Logger::ERROR, 'log message', ['a' => 'b']); + $record['extra'] = ['c' => 'd']; $handler = new StubNewRelicHandler(); $handler->handle($record); - $expected = array( + $expected = [ 'context_a' => 'b', 'extra_c' => 'd', - ); + ]; $this->assertEquals($expected, self::$customParameters); } @@ -131,7 +131,7 @@ class NewRelicHandlerTest extends TestCase public function testTheAppNameCanBeOverriddenFromEachLog() { $handler = new StubNewRelicHandler(Logger::DEBUG, false, 'myAppName'); - $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('appname' => 'logAppName'))); + $handler->handle($this->getRecord(Logger::ERROR, 'log message', ['appname' => 'logAppName'])); $this->assertEquals('logAppName', self::$appname); } @@ -155,7 +155,7 @@ class NewRelicHandlerTest extends TestCase public function testTheTransactionNameCanBeOverriddenFromEachLog() { $handler = new StubNewRelicHandler(Logger::DEBUG, false, null, false, 'myTransaction'); - $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('transaction_name' => 'logTransactName'))); + $handler->handle($this->getRecord(Logger::ERROR, 'log message', ['transaction_name' => 'logTransactName'])); $this->assertEquals('logTransactName', self::$transactionName); } diff --git a/tests/Monolog/Handler/NullHandlerTest.php b/tests/Monolog/Handler/NullHandlerTest.php index 292df78..b7e482b 100644 --- a/tests/Monolog/Handler/NullHandlerTest.php +++ b/tests/Monolog/Handler/NullHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** diff --git a/tests/Monolog/Handler/PHPConsoleHandlerTest.php b/tests/Monolog/Handler/PHPConsoleHandlerTest.php index 152573e..0836b99 100644 --- a/tests/Monolog/Handler/PHPConsoleHandlerTest.php +++ b/tests/Monolog/Handler/PHPConsoleHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -14,11 +14,11 @@ namespace Monolog\Handler; use Exception; use Monolog\ErrorHandler; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; use PhpConsole\Connector; use PhpConsole\Dispatcher\Debug as DebugDispatcher; use PhpConsole\Dispatcher\Errors as ErrorDispatcher; -use PhpConsole\Handler; +use PhpConsole\Handler as VendorPhpConsoleHandler; use PHPUnit_Framework_MockObject_MockObject; /** @@ -52,8 +52,8 @@ class PHPConsoleHandlerTest extends TestCase { return $this->getMockBuilder('PhpConsole\Dispatcher\Debug') ->disableOriginalConstructor() - ->setMethods(array('dispatchDebug')) - ->setConstructorArgs(array($connector, $connector->getDumper())) + ->setMethods(['dispatchDebug']) + ->setConstructorArgs([$connector, $connector->getDumper()]) ->getMock(); } @@ -61,8 +61,8 @@ class PHPConsoleHandlerTest extends TestCase { return $this->getMockBuilder('PhpConsole\Dispatcher\Errors') ->disableOriginalConstructor() - ->setMethods(array('dispatchError', 'dispatchException')) - ->setConstructorArgs(array($connector, $connector->getDumper())) + ->setMethods(['dispatchError', 'dispatchException']) + ->setConstructorArgs([$connector, $connector->getDumper()]) ->getMock(); } @@ -70,7 +70,7 @@ class PHPConsoleHandlerTest extends TestCase { $connector = $this->getMockBuilder('PhpConsole\Connector') ->disableOriginalConstructor() - ->setMethods(array( + ->setMethods([ 'sendMessage', 'onShutDown', 'isActiveClient', @@ -81,7 +81,7 @@ class PHPConsoleHandlerTest extends TestCase 'setAllowedIpMasks', 'setHeadersLimit', 'startEvalRequestsListener', - )) + ]) ->getMock(); $connector->expects($this->any()) @@ -93,17 +93,17 @@ class PHPConsoleHandlerTest extends TestCase protected function getHandlerDefaultOption($name) { - $handler = new PHPConsoleHandler(array(), $this->connector); + $handler = new PHPConsoleHandler([], $this->connector); $options = $handler->getOptions(); return $options[$name]; } - protected function initLogger($handlerOptions = array(), $level = Logger::DEBUG) + protected function initLogger($handlerOptions = [], $level = Logger::DEBUG) { - return new Logger('test', array( + return new Logger('test', [ new PHPConsoleHandler($handlerOptions, $this->connector, $level), - )); + ]); } public function testInitWithDefaultConnector() @@ -114,33 +114,33 @@ class PHPConsoleHandlerTest extends TestCase public function testInitWithCustomConnector() { - $handler = new PHPConsoleHandler(array(), $this->connector); + $handler = new PHPConsoleHandler([], $this->connector); $this->assertEquals(spl_object_hash($this->connector), spl_object_hash($handler->getConnector())); } public function testDebug() { $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with($this->equalTo('test')); - $this->initLogger()->addDebug('test'); + $this->initLogger()->debug('test'); } public function testDebugContextInMessage() { $message = 'test'; $tag = 'tag'; - $context = array($tag, 'custom' => mt_rand()); + $context = [$tag, 'custom' => mt_rand()]; $expectedMessage = $message . ' ' . json_encode(array_slice($context, 1)); $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with( $this->equalTo($expectedMessage), $this->equalTo($tag) ); - $this->initLogger()->addDebug($message, $context); + $this->initLogger()->debug($message, $context); } public function testDebugTags($tagsContextKeys = null) { $expectedTags = mt_rand(); - $logger = $this->initLogger($tagsContextKeys ? array('debugTagsKeysInContext' => $tagsContextKeys) : array()); + $logger = $this->initLogger($tagsContextKeys ? ['debugTagsKeysInContext' => $tagsContextKeys] : []); if (!$tagsContextKeys) { $tagsContextKeys = $this->getHandlerDefaultOption('debugTagsKeysInContext'); } @@ -151,7 +151,7 @@ class PHPConsoleHandlerTest extends TestCase $this->equalTo($expectedTags) ); $this->connector->setDebugDispatcher($debugDispatcher); - $logger->addDebug('test', array($key => $expectedTags)); + $logger->debug('test', [$key => $expectedTags]); } } @@ -168,8 +168,8 @@ class PHPConsoleHandlerTest extends TestCase $this->equalTo($line), $classesPartialsTraceIgnore ?: $this->equalTo($this->getHandlerDefaultOption('classesPartialsTraceIgnore')) ); - $errorHandler = ErrorHandler::register($this->initLogger($classesPartialsTraceIgnore ? array('classesPartialsTraceIgnore' => $classesPartialsTraceIgnore) : array()), false); - $errorHandler->registerErrorHandler(array(), false, E_USER_WARNING); + $errorHandler = ErrorHandler::register($this->initLogger($classesPartialsTraceIgnore ? ['classesPartialsTraceIgnore' => $classesPartialsTraceIgnore] : []), false); + $errorHandler->registerErrorHandler([], false, E_USER_WARNING); $errorHandler->handleError($code, $message, $file, $line); } @@ -183,7 +183,7 @@ class PHPConsoleHandlerTest extends TestCase $handler->log( \Psr\Log\LogLevel::ERROR, sprintf('Uncaught Exception %s: "%s" at %s line %s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()), - array('exception' => $e) + ['exception' => $e] ); } @@ -192,45 +192,45 @@ class PHPConsoleHandlerTest extends TestCase */ public function testWrongOptionsThrowsException() { - new PHPConsoleHandler(array('xxx' => 1)); + new PHPConsoleHandler(['xxx' => 1]); } public function testOptionEnabled() { $this->debugDispatcher->expects($this->never())->method('dispatchDebug'); - $this->initLogger(array('enabled' => false))->addDebug('test'); + $this->initLogger(['enabled' => false])->debug('test'); } public function testOptionClassesPartialsTraceIgnore() { - $this->testError(array('Class', 'Namespace\\')); + $this->testError(['Class', 'Namespace\\']); } public function testOptionDebugTagsKeysInContext() { - $this->testDebugTags(array('key1', 'key2')); + $this->testDebugTags(['key1', 'key2']); } public function testOptionUseOwnErrorsAndExceptionsHandler() { - $this->initLogger(array('useOwnErrorsHandler' => true, 'useOwnExceptionsHandler' => true)); - $this->assertEquals(array(Handler::getInstance(), 'handleError'), set_error_handler(function () { + $this->initLogger(['useOwnErrorsHandler' => true, 'useOwnExceptionsHandler' => true]); + $this->assertEquals([VendorPhpConsoleHandler::getInstance(), 'handleError'], set_error_handler(function () { })); - $this->assertEquals(array(Handler::getInstance(), 'handleException'), set_exception_handler(function () { + $this->assertEquals([VendorPhpConsoleHandler::getInstance(), 'handleException'], set_exception_handler(function () { })); } public static function provideConnectorMethodsOptionsSets() { - return array( - array('sourcesBasePath', 'setSourcesBasePath', __DIR__), - array('serverEncoding', 'setServerEncoding', 'cp1251'), - array('password', 'setPassword', '******'), - array('enableSslOnlyMode', 'enableSslOnlyMode', true, false), - array('ipMasks', 'setAllowedIpMasks', array('127.0.0.*')), - array('headersLimit', 'setHeadersLimit', 2500), - array('enableEvalListener', 'startEvalRequestsListener', true, false), - ); + return [ + ['sourcesBasePath', 'setSourcesBasePath', __DIR__], + ['serverEncoding', 'setServerEncoding', 'cp1251'], + ['password', 'setPassword', '******'], + ['enableSslOnlyMode', 'enableSslOnlyMode', true, false], + ['ipMasks', 'setAllowedIpMasks', ['127.0.0.*']], + ['headersLimit', 'setHeadersLimit', 2500], + ['enableEvalListener', 'startEvalRequestsListener', true, false], + ]; } /** @@ -242,24 +242,24 @@ class PHPConsoleHandlerTest extends TestCase if ($isArgument) { $expectCall->with($value); } - new PHPConsoleHandler(array($option => $value), $this->connector); + new PHPConsoleHandler([$option => $value], $this->connector); } public function testOptionDetectDumpTraceAndSource() { - new PHPConsoleHandler(array('detectDumpTraceAndSource' => true), $this->connector); + new PHPConsoleHandler(['detectDumpTraceAndSource' => true], $this->connector); $this->assertTrue($this->connector->getDebugDispatcher()->detectTraceAndSource); } public static function provideDumperOptionsValues() { - return array( - array('dumperLevelLimit', 'levelLimit', 1001), - array('dumperItemsCountLimit', 'itemsCountLimit', 1002), - array('dumperItemSizeLimit', 'itemSizeLimit', 1003), - array('dumperDumpSizeLimit', 'dumpSizeLimit', 1004), - array('dumperDetectCallbacks', 'detectCallbacks', true), - ); + return [ + ['dumperLevelLimit', 'levelLimit', 1001], + ['dumperItemsCountLimit', 'itemsCountLimit', 1002], + ['dumperItemSizeLimit', 'itemSizeLimit', 1003], + ['dumperDumpSizeLimit', 'dumpSizeLimit', 1004], + ['dumperDetectCallbacks', 'detectCallbacks', true], + ]; } /** @@ -267,7 +267,7 @@ class PHPConsoleHandlerTest extends TestCase */ public function testDumperOptions($option, $dumperProperty, $value) { - new PHPConsoleHandler(array($option => $value), $this->connector); + new PHPConsoleHandler([$option => $value], $this->connector); $this->assertEquals($value, $this->connector->getDumper()->$dumperProperty); } } diff --git a/tests/Monolog/Handler/ProcessHandlerTest.php b/tests/Monolog/Handler/ProcessHandlerTest.php new file mode 100644 index 0000000..011c7c5 --- /dev/null +++ b/tests/Monolog/Handler/ProcessHandlerTest.php @@ -0,0 +1,195 @@ +<?php declare(strict_types=1); + +/* + * This file is part of the Monolog package. + * + * (c) Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Handler; + +use Monolog\Test\TestCase; +use Monolog\Logger; + +class ProcessHandlerTest extends TestCase +{ + /** + * Dummy command to be used by tests that should not fail due to the command. + * + * @var string + */ + const DUMMY_COMMAND = 'echo'; + + /** + * @covers Monolog\Handler\ProcessHandler::__construct + * @covers Monolog\Handler\ProcessHandler::guardAgainstInvalidCommand + * @covers Monolog\Handler\ProcessHandler::guardAgainstInvalidCwd + * @covers Monolog\Handler\ProcessHandler::write + * @covers Monolog\Handler\ProcessHandler::ensureProcessIsStarted + * @covers Monolog\Handler\ProcessHandler::startProcess + * @covers Monolog\Handler\ProcessHandler::handleStartupErrors + */ + public function testWriteOpensProcessAndWritesToStdInOfProcess() + { + $fixtures = [ + 'chuck norris', + 'foobar1337', + ]; + + $mockBuilder = $this->getMockBuilder('Monolog\Handler\ProcessHandler'); + $mockBuilder->setMethods(['writeProcessInput']); + // using echo as command, as it is most probably available + $mockBuilder->setConstructorArgs([self::DUMMY_COMMAND]); + + $handler = $mockBuilder->getMock(); + + $handler->expects($this->exactly(2)) + ->method('writeProcessInput') + ->withConsecutive($this->stringContains($fixtures[0]), $this->stringContains($fixtures[1])); + + /** @var ProcessHandler $handler */ + $handler->handle($this->getRecord(Logger::WARNING, $fixtures[0])); + $handler->handle($this->getRecord(Logger::ERROR, $fixtures[1])); + } + + /** + * Data provider for invalid commands. + * + * @return array + */ + public function invalidCommandProvider() + { + return [ + [1337], + [''], + [null], + [fopen('php://input', 'r')], + ]; + } + + /** + * @dataProvider invalidCommandProvider + * @param mixed $invalidCommand + * @covers Monolog\Handler\ProcessHandler::guardAgainstInvalidCommand + */ + public function testConstructWithInvalidCommandThrowsInvalidArgumentException($invalidCommand) + { + $this->setExpectedException('\InvalidArgumentException'); + new ProcessHandler($invalidCommand, Logger::DEBUG); + } + + /** + * Data provider for invalid CWDs. + * + * @return array + */ + public function invalidCwdProvider() + { + return [ + [1337], + [''], + [fopen('php://input', 'r')], + ]; + } + + /** + * @dataProvider invalidCwdProvider + * @param mixed $invalidCwd + * @covers Monolog\Handler\ProcessHandler::guardAgainstInvalidCwd + */ + public function testConstructWithInvalidCwdThrowsInvalidArgumentException($invalidCwd) + { + $this->setExpectedException('\InvalidArgumentException'); + new ProcessHandler(self::DUMMY_COMMAND, Logger::DEBUG, true, $invalidCwd); + } + + /** + * @covers Monolog\Handler\ProcessHandler::__construct + * @covers Monolog\Handler\ProcessHandler::guardAgainstInvalidCwd + */ + public function testConstructWithValidCwdWorks() + { + $handler = new ProcessHandler(self::DUMMY_COMMAND, Logger::DEBUG, true, sys_get_temp_dir()); + $this->assertInstanceOf( + 'Monolog\Handler\ProcessHandler', + $handler, + 'Constructed handler is not a ProcessHandler.' + ); + } + + /** + * @covers Monolog\Handler\ProcessHandler::handleStartupErrors + */ + public function testStartupWithFailingToSelectErrorStreamThrowsUnexpectedValueException() + { + $mockBuilder = $this->getMockBuilder('Monolog\Handler\ProcessHandler'); + $mockBuilder->setMethods(['selectErrorStream']); + $mockBuilder->setConstructorArgs([self::DUMMY_COMMAND]); + + $handler = $mockBuilder->getMock(); + + $handler->expects($this->once()) + ->method('selectErrorStream') + ->will($this->returnValue(false)); + + $this->setExpectedException('\UnexpectedValueException'); + /** @var ProcessHandler $handler */ + $handler->handle($this->getRecord(Logger::WARNING, 'stream failing, whoops')); + } + + /** + * @covers Monolog\Handler\ProcessHandler::handleStartupErrors + * @covers Monolog\Handler\ProcessHandler::selectErrorStream + */ + public function testStartupWithErrorsThrowsUnexpectedValueException() + { + $handler = new ProcessHandler('>&2 echo "some fake error message"'); + $this->setExpectedException('\UnexpectedValueException'); + $handler->handle($this->getRecord(Logger::WARNING, 'some warning in the house')); + } + + /** + * @covers Monolog\Handler\ProcessHandler::write + */ + public function testWritingWithErrorsOnStdOutOfProcessThrowsInvalidArgumentException() + { + $mockBuilder = $this->getMockBuilder('Monolog\Handler\ProcessHandler'); + $mockBuilder->setMethods(['readProcessErrors']); + // using echo as command, as it is most probably available + $mockBuilder->setConstructorArgs([self::DUMMY_COMMAND]); + + $handler = $mockBuilder->getMock(); + + $handler->expects($this->exactly(2)) + ->method('readProcessErrors') + ->willReturnOnConsecutiveCalls('', $this->returnValue('some fake error message here')); + + $this->setExpectedException('\UnexpectedValueException'); + /** @var ProcessHandler $handler */ + $handler->handle($this->getRecord(Logger::WARNING, 'some test stuff')); + } + + /** + * @covers Monolog\Handler\ProcessHandler::close + */ + public function testCloseClosesProcess() + { + $class = new \ReflectionClass('Monolog\Handler\ProcessHandler'); + $property = $class->getProperty('process'); + $property->setAccessible(true); + + $handler = new ProcessHandler(self::DUMMY_COMMAND); + $handler->handle($this->getRecord(Logger::WARNING, '21 is only the half truth')); + + $process = $property->getValue($handler); + $this->assertTrue(is_resource($process), 'Process is not running although it should.'); + + $handler->close(); + + $process = $property->getValue($handler); + $this->assertFalse(is_resource($process), 'Process is still running although it should not.'); + } +} diff --git a/tests/Monolog/Handler/PsrHandlerTest.php b/tests/Monolog/Handler/PsrHandlerTest.php index 64eaab1..6398809 100644 --- a/tests/Monolog/Handler/PsrHandlerTest.php +++ b/tests/Monolog/Handler/PsrHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -21,11 +21,11 @@ class PsrHandlerTest extends TestCase { public function logLevelProvider() { - $levels = array(); + $levels = []; $monologLogger = new Logger(''); foreach ($monologLogger->getLevels() as $levelName => $level) { - $levels[] = array($levelName, $level); + $levels[] = [$levelName, $level]; } return $levels; @@ -37,7 +37,7 @@ class PsrHandlerTest extends TestCase public function testHandlesAllLevels($levelName, $level) { $message = 'Hello, world! ' . $level; - $context = array('foo' => 'bar', 'level' => $level); + $context = ['foo' => 'bar', 'level' => $level]; $psrLogger = $this->getMock('Psr\Log\NullLogger'); $psrLogger->expects($this->once()) @@ -45,6 +45,6 @@ class PsrHandlerTest extends TestCase ->with(strtolower($levelName), $message, $context); $handler = new PsrHandler($psrLogger); - $handler->handle(array('level' => $level, 'level_name' => $levelName, 'message' => $message, 'context' => $context)); + $handler->handle(['level' => $level, 'level_name' => $levelName, 'message' => $message, 'context' => $context]); } } diff --git a/tests/Monolog/Handler/PushoverHandlerTest.php b/tests/Monolog/Handler/PushoverHandlerTest.php index 56df474..e5336ab 100644 --- a/tests/Monolog/Handler/PushoverHandlerTest.php +++ b/tests/Monolog/Handler/PushoverHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -103,7 +103,7 @@ class PushoverHandlerTest extends TestCase public function testWriteToMultipleUsers() { - $this->createHandler('myToken', array('userA', 'userB')); + $this->createHandler('myToken', ['userA', 'userB']); $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1')); fseek($this->res, 0); $content = fread($this->res, 1024); @@ -114,11 +114,11 @@ class PushoverHandlerTest extends TestCase private function createHandler($token = 'myToken', $user = 'myUser', $title = 'Monolog') { - $constructorArgs = array($token, $user, $title); + $constructorArgs = [$token, $user, $title]; $this->res = fopen('php://memory', 'a'); $this->handler = $this->getMock( '\Monolog\Handler\PushoverHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), + ['fsockopen', 'streamSetTimeout', 'closeSocket'], $constructorArgs ); diff --git a/tests/Monolog/Handler/RavenHandlerTest.php b/tests/Monolog/Handler/RavenHandlerTest.php index a7c4845..d4325e5 100644 --- a/tests/Monolog/Handler/RavenHandlerTest.php +++ b/tests/Monolog/Handler/RavenHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use Monolog\Formatter\LineFormatter; @@ -78,8 +78,8 @@ class RavenHandlerTest extends TestCase $ravenClient = $this->getRavenClient(); $handler = $this->getHandler($ravenClient); - $tags = array(1, 2, 'foo'); - $record = $this->getRecord(Logger::INFO, 'test', array('tags' => $tags)); + $tags = [1, 2, 'foo']; + $record = $this->getRecord(Logger::INFO, 'test', ['tags' => $tags]); $handler->handle($record); $this->assertEquals($tags, $ravenClient->lastData['tags']); @@ -92,7 +92,7 @@ class RavenHandlerTest extends TestCase $checksum = '098f6bcd4621d373cade4e832627b4f6'; $release = '05a671c66aefea124cc08b76ea6d30bb'; - $record = $this->getRecord(Logger::INFO, 'test', array('checksum' => $checksum, 'release' => $release)); + $record = $this->getRecord(Logger::INFO, 'test', ['checksum' => $checksum, 'release' => $release]); $handler->handle($record); $this->assertEquals($checksum, $ravenClient->lastData['checksum']); @@ -104,8 +104,8 @@ class RavenHandlerTest extends TestCase $ravenClient = $this->getRavenClient(); $handler = $this->getHandler($ravenClient); - $fingerprint = array('{{ default }}', 'other value'); - $record = $this->getRecord(Logger::INFO, 'test', array('fingerprint' => $fingerprint)); + $fingerprint = ['{{ default }}', 'other value']; + $record = $this->getRecord(Logger::INFO, 'test', ['fingerprint' => $fingerprint]); $handler->handle($record); $this->assertEquals($fingerprint, $ravenClient->lastData['fingerprint']); @@ -119,14 +119,14 @@ class RavenHandlerTest extends TestCase $recordWithNoContext = $this->getRecord(Logger::INFO, 'test with default user context'); // set user context 'externally' - $user = array( + $user = [ 'id' => '123', 'email' => 'test@test.com', - ); + ]; - $recordWithContext = $this->getRecord(Logger::INFO, 'test', array('user' => $user)); + $recordWithContext = $this->getRecord(Logger::INFO, 'test', ['user' => $user]); - $ravenClient->user_context(array('id' => 'test_user_id')); + $ravenClient->user_context(['id' => 'test_user_id']); // handle context $handler->handle($recordWithContext); $this->assertEquals($user, $ravenClient->lastData['user']); @@ -154,7 +154,7 @@ class RavenHandlerTest extends TestCase try { $this->methodThatThrowsAnException(); } catch (\Exception $e) { - $record = $this->getRecord(Logger::ERROR, $e->getMessage(), array('exception' => $e)); + $record = $this->getRecord(Logger::ERROR, $e->getMessage(), ['exception' => $e]); $handler->handle($record); } @@ -183,13 +183,13 @@ class RavenHandlerTest extends TestCase public function testHandleBatchDoNothingIfRecordsAreBelowLevel() { - $records = array( + $records = [ $this->getRecord(Logger::DEBUG, 'debug message 1'), $this->getRecord(Logger::DEBUG, 'debug message 2'), $this->getRecord(Logger::INFO, 'information'), - ); + ]; - $handler = $this->getMock('Monolog\Handler\RavenHandler', null, array($this->getRavenClient())); + $handler = $this->getMock('Monolog\Handler\RavenHandler', ['handle'], [$this->getRavenClient()]); $handler->expects($this->never())->method('handle'); $handler->setLevel(Logger::ERROR); $handler->handleBatch($records); @@ -215,7 +215,7 @@ class RavenHandlerTest extends TestCase $this->assertEquals($release, $ravenClient->lastData['release']); $localRelease = 'v41.41.41'; - $record = $this->getRecord(Logger::INFO, 'test', array('release' => $localRelease)); + $record = $this->getRecord(Logger::INFO, 'test', ['release' => $localRelease]); $handler->handle($record); $this->assertEquals($localRelease, $ravenClient->lastData['release']); } diff --git a/tests/Monolog/Handler/RedisHandlerTest.php b/tests/Monolog/Handler/RedisHandlerTest.php index 689d527..719a128 100644 --- a/tests/Monolog/Handler/RedisHandlerTest.php +++ b/tests/Monolog/Handler/RedisHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; use Monolog\Formatter\LineFormatter; @@ -39,14 +39,14 @@ class RedisHandlerTest extends TestCase public function testPredisHandle() { - $redis = $this->getMock('Predis\Client', array('rpush')); + $redis = $this->getMock('Predis\Client', ['rpush']); // Predis\Client uses rpush $redis->expects($this->once()) ->method('rpush') ->with('key', 'test'); - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + $record = $this->getRecord(Logger::WARNING, 'test', ['data' => new \stdClass, 'foo' => 34]); $handler = new RedisHandler($redis, 'key'); $handler->setFormatter(new LineFormatter("%message%")); @@ -55,14 +55,14 @@ class RedisHandlerTest extends TestCase public function testRedisHandle() { - $redis = $this->getMock('Redis', array('rpush')); + $redis = $this->getMock('Redis', ['rpush']); // Redis uses rPush $redis->expects($this->once()) - ->method('rPush') + ->method('rpush') ->with('key', 'test'); - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + $record = $this->getRecord(Logger::WARNING, 'test', ['data' => new \stdClass, 'foo' => 34]); $handler = new RedisHandler($redis, 'key'); $handler->setFormatter(new LineFormatter("%message%")); @@ -71,7 +71,7 @@ class RedisHandlerTest extends TestCase public function testRedisHandleCapped() { - $redis = $this->getMock('Redis', array('multi', 'rpush', 'ltrim', 'exec')); + $redis = $this->getMock('Redis', ['multi', 'rpush', 'ltrim', 'exec']); // Redis uses multi $redis->expects($this->once()) @@ -90,7 +90,7 @@ class RedisHandlerTest extends TestCase ->method('exec') ->will($this->returnSelf()); - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + $record = $this->getRecord(Logger::WARNING, 'test', ['data' => new \stdClass, 'foo' => 34]); $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10); $handler->setFormatter(new LineFormatter("%message%")); @@ -99,9 +99,9 @@ class RedisHandlerTest extends TestCase public function testPredisHandleCapped() { - $redis = $this->getMock('Predis\Client', array('transaction')); + $redis = $this->getMock('Predis\Client', ['transaction']); - $redisTransaction = $this->getMock('Predis\Client', array('rpush', 'ltrim')); + $redisTransaction = $this->getMock('Predis\Client', ['rpush', 'ltrim']); $redisTransaction->expects($this->once()) ->method('rpush') @@ -118,7 +118,7 @@ class RedisHandlerTest extends TestCase $cb($redisTransaction); })); - $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34)); + $record = $this->getRecord(Logger::WARNING, 'test', ['data' => new \stdClass, 'foo' => 34]); $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10); $handler->setFormatter(new LineFormatter("%message%")); diff --git a/tests/Monolog/Handler/RotatingFileHandlerTest.php b/tests/Monolog/Handler/RotatingFileHandlerTest.php index 96e6dff..58188e2 100644 --- a/tests/Monolog/Handler/RotatingFileHandlerTest.php +++ b/tests/Monolog/Handler/RotatingFileHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,8 +11,8 @@ namespace Monolog\Handler; -use Monolog\TestCase; -use PHPUnit_Framework_Error_Deprecated; +use InvalidArgumentException; +use Monolog\Test\TestCase; /** * @covers Monolog\Handler\RotatingFileHandler @@ -37,11 +37,11 @@ class RotatingFileHandlerTest extends TestCase $this->lastError = null; $self = $this; // workaround with &$self used for PHP 5.3 - set_error_handler(function($code, $message) use (&$self) { - $self->lastError = array( + set_error_handler(function ($code, $message) use (&$self) { + $self->lastError = [ 'code' => $code, 'message' => $message, - ); + ]; }); } @@ -107,32 +107,32 @@ class RotatingFileHandlerTest extends TestCase public function rotationTests() { $now = time(); - $dayCallback = function($ago) use ($now) { + $dayCallback = function ($ago) use ($now) { return $now + 86400 * $ago; }; - $monthCallback = function($ago) { - return gmmktime(0, 0, 0, date('n') + $ago, date('d'), date('Y')); + $monthCallback = function ($ago) { + return gmmktime(0, 0, 0, (int) (date('n') + $ago), (int) date('d'), (int) date('Y')); }; - $yearCallback = function($ago) { - return gmmktime(0, 0, 0, date('n'), date('d'), date('Y') + $ago); + $yearCallback = function ($ago) { + return gmmktime(0, 0, 0, (int) date('n'), (int) date('d'), (int) (date('Y') + $ago)); }; - return array( + return [ 'Rotation is triggered when the file of the current day is not present' - => array(true, RotatingFileHandler::FILE_PER_DAY, $dayCallback), + => [true, RotatingFileHandler::FILE_PER_DAY, $dayCallback], 'Rotation is not triggered when the file of the current day is already present' - => array(false, RotatingFileHandler::FILE_PER_DAY, $dayCallback), + => [false, RotatingFileHandler::FILE_PER_DAY, $dayCallback], 'Rotation is triggered when the file of the current month is not present' - => array(true, RotatingFileHandler::FILE_PER_MONTH, $monthCallback), + => [true, RotatingFileHandler::FILE_PER_MONTH, $monthCallback], 'Rotation is not triggered when the file of the current month is already present' - => array(false, RotatingFileHandler::FILE_PER_MONTH, $monthCallback), + => [false, RotatingFileHandler::FILE_PER_MONTH, $monthCallback], 'Rotation is triggered when the file of the current year is not present' - => array(true, RotatingFileHandler::FILE_PER_YEAR, $yearCallback), + => [true, RotatingFileHandler::FILE_PER_YEAR, $yearCallback], 'Rotation is not triggered when the file of the current year is already present' - => array(false, RotatingFileHandler::FILE_PER_YEAR, $yearCallback), - ); + => [false, RotatingFileHandler::FILE_PER_YEAR, $yearCallback], + ]; } /** @@ -141,26 +141,37 @@ class RotatingFileHandlerTest extends TestCase public function testAllowOnlyFixedDefinedDateFormats($dateFormat, $valid) { $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); - $handler->setFilenameFormat('{filename}-{date}', $dateFormat); if (!$valid) { - $this->assertErrorWasTriggered( - E_USER_DEPRECATED, - 'Invalid date format - format should be one of '. - 'RotatingFileHandler::FILE_PER_DAY, RotatingFileHandler::FILE_PER_MONTH '. - 'or RotatingFileHandler::FILE_PER_YEAR.' - ); + $this->setExpectedExceptionRegExp(InvalidArgumentException::class, '~^Invalid date format~'); } + $handler->setFilenameFormat('{filename}-{date}', $dateFormat); } public function dateFormatProvider() { - return array( - array(RotatingFileHandler::FILE_PER_DAY, true), - array(RotatingFileHandler::FILE_PER_MONTH, true), - array(RotatingFileHandler::FILE_PER_YEAR, true), - array('m-d-Y', false), - array('Y-m-d-h-i', false) - ); + return [ + [RotatingFileHandler::FILE_PER_DAY, true], + [RotatingFileHandler::FILE_PER_MONTH, true], + [RotatingFileHandler::FILE_PER_YEAR, true], + ['Y/m/d', true], + ['Y.m.d', true], + ['Y_m_d', true], + ['Ymd', true], + ['Ym/d', true], + ['Y/m', true], + ['Ym', true], + ['Y.m', true], + ['Y_m', true], + ['Y/md', true], + ['', false], + ['m-d-Y', false], + ['Y-m-d-h-i', false], + ['Y-', false], + ['Y-m-', false], + ['Y--', false], + ['m-d', false], + ['Y-d', false] + ]; } /** @@ -169,26 +180,24 @@ class RotatingFileHandlerTest extends TestCase public function testDisallowFilenameFormatsWithoutDate($filenameFormat, $valid) { $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2); - $handler->setFilenameFormat($filenameFormat, RotatingFileHandler::FILE_PER_DAY); if (!$valid) { - $this->assertErrorWasTriggered( - E_USER_DEPRECATED, - 'Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.' - ); + $this->setExpectedExceptionRegExp(InvalidArgumentException::class, '~^Invalid filename format~'); } + + $handler->setFilenameFormat($filenameFormat, RotatingFileHandler::FILE_PER_DAY); } public function filenameFormatProvider() { - return array( - array('{filename}', false), - array('{filename}-{date}', true), - array('{date}', true), - array('foobar-{date}', true), - array('foo-{date}-bar', true), - array('{date}-foobar', true), - array('foobar', false), - ); + return [ + ['{filename}', false], + ['{filename}-{date}', true], + ['{date}', true], + ['foobar-{date}', true], + ['foo-{date}-bar', true], + ['{date}-foobar', true], + ['foobar', false], + ]; } public function testReuseCurrentFile() diff --git a/tests/Monolog/Handler/SamplingHandlerTest.php b/tests/Monolog/Handler/SamplingHandlerTest.php index b354cee..90f5c9b 100644 --- a/tests/Monolog/Handler/SamplingHandlerTest.php +++ b/tests/Monolog/Handler/SamplingHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; /** * @covers Monolog\Handler\SamplingHandler::handle diff --git a/tests/Monolog/Handler/SlackHandlerTest.php b/tests/Monolog/Handler/SlackHandlerTest.php index d657fae..d42c19b 100644 --- a/tests/Monolog/Handler/SlackHandlerTest.php +++ b/tests/Monolog/Handler/SlackHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -92,25 +92,25 @@ class SlackHandlerTest extends TestCase public function provideLevelColors() { - return array( - array(Logger::DEBUG, '%23e3e4e6'), // escaped #e3e4e6 - array(Logger::INFO, 'good'), - array(Logger::NOTICE, 'good'), - array(Logger::WARNING, 'warning'), - array(Logger::ERROR, 'danger'), - array(Logger::CRITICAL, 'danger'), - array(Logger::ALERT, 'danger'), - array(Logger::EMERGENCY,'danger'), - ); + return [ + [Logger::DEBUG, '%23e3e4e6'], // escaped #e3e4e6 + [Logger::INFO, 'good'], + [Logger::NOTICE, 'good'], + [Logger::WARNING, 'warning'], + [Logger::ERROR, 'danger'], + [Logger::CRITICAL, 'danger'], + [Logger::ALERT, 'danger'], + [Logger::EMERGENCY,'danger'], + ]; } private function createHandler($token = 'myToken', $channel = 'channel1', $username = 'Monolog', $useAttachment = true, $iconEmoji = null, $useShortAttachment = false, $includeExtra = false) { - $constructorArgs = array($token, $channel, $username, $useAttachment, $iconEmoji, Logger::DEBUG, true, $useShortAttachment, $includeExtra); + $constructorArgs = [$token, $channel, $username, $useAttachment, $iconEmoji, Logger::DEBUG, true, $useShortAttachment, $includeExtra]; $this->res = fopen('php://memory', 'a'); $this->handler = $this->getMock( '\Monolog\Handler\SlackHandler', - array('fsockopen', 'streamSetTimeout', 'closeSocket'), + ['fsockopen', 'streamSetTimeout', 'closeSocket'], $constructorArgs ); diff --git a/tests/Monolog/Handler/SocketHandlerTest.php b/tests/Monolog/Handler/SocketHandlerTest.php index 1f9c1f2..4574859 100644 --- a/tests/Monolog/Handler/SocketHandlerTest.php +++ b/tests/Monolog/Handler/SocketHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -88,7 +88,7 @@ class SocketHandlerTest extends TestCase */ public function testExceptionIsThrownOnFsockopenError() { - $this->setMockHandler(array('fsockopen')); + $this->setMockHandler(['fsockopen']); $this->handler->expects($this->once()) ->method('fsockopen') ->will($this->returnValue(false)); @@ -100,7 +100,7 @@ class SocketHandlerTest extends TestCase */ public function testExceptionIsThrownOnPfsockopenError() { - $this->setMockHandler(array('pfsockopen')); + $this->setMockHandler(['pfsockopen']); $this->handler->expects($this->once()) ->method('pfsockopen') ->will($this->returnValue(false)); @@ -113,7 +113,7 @@ class SocketHandlerTest extends TestCase */ public function testExceptionIsThrownIfCannotSetTimeout() { - $this->setMockHandler(array('streamSetTimeout')); + $this->setMockHandler(['streamSetTimeout']); $this->handler->expects($this->once()) ->method('streamSetTimeout') ->will($this->returnValue(false)); @@ -125,13 +125,13 @@ class SocketHandlerTest extends TestCase */ public function testWriteFailsOnIfFwriteReturnsFalse() { - $this->setMockHandler(array('fwrite')); + $this->setMockHandler(['fwrite']); $callback = function ($arg) { - $map = array( + $map = [ 'Hello world' => 6, 'world' => false, - ); + ]; return $map[$arg]; }; @@ -148,13 +148,13 @@ class SocketHandlerTest extends TestCase */ public function testWriteFailsIfStreamTimesOut() { - $this->setMockHandler(array('fwrite', 'streamGetMetadata')); + $this->setMockHandler(['fwrite', 'streamGetMetadata']); $callback = function ($arg) { - $map = array( + $map = [ 'Hello world' => 6, 'world' => 5, - ); + ]; return $map[$arg]; }; @@ -164,7 +164,7 @@ class SocketHandlerTest extends TestCase ->will($this->returnCallback($callback)); $this->handler->expects($this->exactly(1)) ->method('streamGetMetadata') - ->will($this->returnValue(array('timed_out' => true))); + ->will($this->returnValue(['timed_out' => true])); $this->writeRecord('Hello world'); } @@ -174,7 +174,7 @@ class SocketHandlerTest extends TestCase */ public function testWriteFailsOnIncompleteWrite() { - $this->setMockHandler(array('fwrite', 'streamGetMetadata')); + $this->setMockHandler(['fwrite', 'streamGetMetadata']); $res = $this->res; $callback = function ($string) use ($res) { @@ -188,7 +188,7 @@ class SocketHandlerTest extends TestCase ->will($this->returnCallback($callback)); $this->handler->expects($this->exactly(1)) ->method('streamGetMetadata') - ->will($this->returnValue(array('timed_out' => false))); + ->will($this->returnValue(['timed_out' => false])); $this->writeRecord('Hello world'); } @@ -205,13 +205,13 @@ class SocketHandlerTest extends TestCase public function testWriteWithMock() { - $this->setMockHandler(array('fwrite')); + $this->setMockHandler(['fwrite']); $callback = function ($arg) { - $map = array( + $map = [ 'Hello world' => 6, 'world' => 5, - ); + ]; return $map[$arg]; }; @@ -247,7 +247,7 @@ class SocketHandlerTest extends TestCase */ public function testAvoidInfiniteLoopWhenNoDataIsWrittenForAWritingTimeoutSeconds() { - $this->setMockHandler(array('fwrite', 'streamGetMetadata')); + $this->setMockHandler(['fwrite', 'streamGetMetadata']); $this->handler->expects($this->any()) ->method('fwrite') @@ -255,7 +255,7 @@ class SocketHandlerTest extends TestCase $this->handler->expects($this->any()) ->method('streamGetMetadata') - ->will($this->returnValue(array('timed_out' => false))); + ->will($this->returnValue(['timed_out' => false])); $this->handler->setWritingTimeout(1); @@ -273,17 +273,17 @@ class SocketHandlerTest extends TestCase $this->handler->handle($this->getRecord(Logger::WARNING, $string)); } - private function setMockHandler(array $methods = array()) + private function setMockHandler(array $methods = []) { $this->res = fopen('php://memory', 'a'); - $defaultMethods = array('fsockopen', 'pfsockopen', 'streamSetTimeout'); + $defaultMethods = ['fsockopen', 'pfsockopen', 'streamSetTimeout']; $newMethods = array_diff($methods, $defaultMethods); $finalMethods = array_merge($defaultMethods, $newMethods); $this->handler = $this->getMock( - '\Monolog\Handler\SocketHandler', $finalMethods, array('localhost:1234') + '\Monolog\Handler\SocketHandler', $finalMethods, ['localhost:1234'] ); if (!in_array('fsockopen', $methods)) { diff --git a/tests/Monolog/Handler/StreamHandlerTest.php b/tests/Monolog/Handler/StreamHandlerTest.php index 487030f..377e296 100644 --- a/tests/Monolog/Handler/StreamHandlerTest.php +++ b/tests/Monolog/Handler/StreamHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; class StreamHandlerTest extends TestCase @@ -51,13 +51,38 @@ class StreamHandlerTest extends TestCase { $handler = new StreamHandler('php://memory'); $handler->handle($this->getRecord(Logger::WARNING, 'test')); - $streamProp = new \ReflectionProperty('Monolog\Handler\StreamHandler', 'stream'); - $streamProp->setAccessible(true); - $handle = $streamProp->getValue($handler); + $stream = $handler->getStream(); - $this->assertTrue(is_resource($handle)); + $this->assertTrue(is_resource($stream)); $handler->close(); - $this->assertFalse(is_resource($handle)); + $this->assertFalse(is_resource($stream)); + } + + /** + * @covers Monolog\Handler\StreamHandler::close + * @covers Monolog\Handler\Handler::__sleep + */ + public function testSerialization() + { + $handler = new StreamHandler('php://memory'); + $handler->handle($this->getRecord(Logger::WARNING, 'testfoo')); + $stream = $handler->getStream(); + + $this->assertTrue(is_resource($stream)); + fseek($stream, 0); + $this->assertContains('testfoo', stream_get_contents($stream)); + $serialized = serialize($handler); + $this->assertFalse(is_resource($stream)); + + $handler = unserialize($serialized); + $handler->handle($this->getRecord(Logger::WARNING, 'testbar')); + $stream = $handler->getStream(); + + $this->assertTrue(is_resource($stream)); + fseek($stream, 0); + $contents = stream_get_contents($stream); + $this->assertNotContains('testfoo', $contents); + $this->assertContains('testbar', $contents); } /** @@ -93,11 +118,11 @@ class StreamHandlerTest extends TestCase public function invalidArgumentProvider() { - return array( - array(1), - array(array()), - array(array('bogus://url')), - ); + return [ + [1], + [[]], + [['bogus://url']], + ]; } /** diff --git a/tests/Monolog/Handler/SwiftMailerHandlerTest.php b/tests/Monolog/Handler/SwiftMailerHandlerTest.php index 8588691..ec7fc21 100644 --- a/tests/Monolog/Handler/SwiftMailerHandlerTest.php +++ b/tests/Monolog/Handler/SwiftMailerHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -12,7 +12,7 @@ namespace Monolog\Handler; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; class SwiftMailerHandlerTest extends TestCase { @@ -37,10 +37,10 @@ class SwiftMailerHandlerTest extends TestCase }; $handler = new SwiftMailerHandler($this->mailer, $callback); - $records = array( + $records = [ $this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO), - ); + ]; $handler->handleBatch($records); } @@ -66,9 +66,9 @@ class SwiftMailerHandlerTest extends TestCase $handler = new SwiftMailerHandler($this->mailer, $callback); // Logging 1 record makes this an Emergency - $records = array( + $records = [ $this->getRecord(Logger::EMERGENCY), - ); + ]; $handler->handleBatch($records); } @@ -83,14 +83,15 @@ class SwiftMailerHandlerTest extends TestCase ->method('send') ->with($this->callback(function ($value) use (&$receivedMessage) { $receivedMessage = $value; + return true; })); $handler = new SwiftMailerHandler($this->mailer, $messageTemplate); - $records = array( + $records = [ $this->getRecord(Logger::EMERGENCY), - ); + ]; $handler->handleBatch($records); $this->assertEquals('Alert: EMERGENCY test', $receivedMessage->getSubject()); @@ -103,10 +104,10 @@ class SwiftMailerHandlerTest extends TestCase $method = new \ReflectionMethod('Monolog\Handler\SwiftMailerHandler', 'buildMessage'); $method->setAccessible(true); - $method->invokeArgs($handler, array($messageTemplate, array())); + $method->invokeArgs($handler, [$messageTemplate, []]); - $builtMessage1 = $method->invoke($handler, $messageTemplate, array()); - $builtMessage2 = $method->invoke($handler, $messageTemplate, array()); + $builtMessage1 = $method->invoke($handler, $messageTemplate, []); + $builtMessage2 = $method->invoke($handler, $messageTemplate, []); $this->assertFalse($builtMessage1->getId() === $builtMessage2->getId(), 'Two different messages have the same id'); } diff --git a/tests/Monolog/Handler/SyslogHandlerTest.php b/tests/Monolog/Handler/SyslogHandlerTest.php index 8f9e46b..dd31f53 100644 --- a/tests/Monolog/Handler/SyslogHandlerTest.php +++ b/tests/Monolog/Handler/SyslogHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. diff --git a/tests/Monolog/Handler/SyslogUdpHandlerTest.php b/tests/Monolog/Handler/SyslogUdpHandlerTest.php index 497812b..25d7c58 100644 --- a/tests/Monolog/Handler/SyslogUdpHandlerTest.php +++ b/tests/Monolog/Handler/SyslogUdpHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -29,7 +29,7 @@ class SyslogUdpHandlerTest extends \PHPUnit_Framework_TestCase $handler = new SyslogUdpHandler("127.0.0.1", 514, "authpriv"); $handler->setFormatter(new \Monolog\Formatter\ChromePHPFormatter()); - $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('write'), array('lol', 'lol')); + $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', ['write'], ['lol', 'lol']); $socket->expects($this->at(0)) ->method('write') ->with("lol", "<".(LOG_AUTHPRIV + LOG_WARNING).">1 "); @@ -44,6 +44,6 @@ class SyslogUdpHandlerTest extends \PHPUnit_Framework_TestCase protected function getRecordWithMessage($msg) { - return array('message' => $msg, 'level' => \Monolog\Logger::WARNING, 'context' => null, 'extra' => array(), 'channel' => 'lol'); + return ['message' => $msg, 'level' => \Monolog\Logger::WARNING, 'context' => null, 'extra' => [], 'channel' => 'lol']; } } diff --git a/tests/Monolog/Handler/TestHandlerTest.php b/tests/Monolog/Handler/TestHandlerTest.php index 75cc4a8..4fa20bb 100644 --- a/tests/Monolog/Handler/TestHandlerTest.php +++ b/tests/Monolog/Handler/TestHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; /** @@ -47,20 +47,20 @@ class TestHandlerTest extends TestCase $records = $handler->getRecords(); unset($records[0]['formatted']); - $this->assertEquals(array($record), $records); + $this->assertEquals([$record], $records); } public function methodProvider() { - return array( - array('Emergency', Logger::EMERGENCY), - array('Alert' , Logger::ALERT), - array('Critical' , Logger::CRITICAL), - array('Error' , Logger::ERROR), - array('Warning' , Logger::WARNING), - array('Info' , Logger::INFO), - array('Notice' , Logger::NOTICE), - array('Debug' , Logger::DEBUG), - ); + return [ + ['Emergency', Logger::EMERGENCY], + ['Alert' , Logger::ALERT], + ['Critical' , Logger::CRITICAL], + ['Error' , Logger::ERROR], + ['Warning' , Logger::WARNING], + ['Info' , Logger::INFO], + ['Notice' , Logger::NOTICE], + ['Debug' , Logger::DEBUG], + ]; } } diff --git a/tests/Monolog/Handler/UdpSocketTest.php b/tests/Monolog/Handler/UdpSocketTest.php index fa524d0..de0f7fb 100644 --- a/tests/Monolog/Handler/UdpSocketTest.php +++ b/tests/Monolog/Handler/UdpSocketTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Handler\SyslogUdp\UdpSocket; /** @@ -21,7 +21,7 @@ class UdpSocketTest extends TestCase { public function testWeDoNotTruncateShortMessages() { - $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('send'), array('lol', 'lol')); + $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', ['send'], ['lol', 'lol']); $socket->expects($this->at(0)) ->method('send') @@ -32,7 +32,7 @@ class UdpSocketTest extends TestCase public function testLongMessagesAreTruncated() { - $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', array('send'), array('lol', 'lol')); + $socket = $this->getMock('\Monolog\Handler\SyslogUdp\UdpSocket', ['send'], ['lol', 'lol']); $truncatedString = str_repeat("derp", 16254).'d'; diff --git a/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php b/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php index 8d37a1f..60f5175 100644 --- a/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php +++ b/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Logger; class WhatFailureGroupHandlerTest extends TestCase @@ -22,7 +22,7 @@ class WhatFailureGroupHandlerTest extends TestCase */ public function testConstructorOnlyTakesHandler() { - new WhatFailureGroupHandler(array(new TestHandler(), "foo")); + new WhatFailureGroupHandler([new TestHandler(), "foo"]); } /** @@ -31,7 +31,7 @@ class WhatFailureGroupHandlerTest extends TestCase */ public function testHandle() { - $testHandlers = array(new TestHandler(), new TestHandler()); + $testHandlers = [new TestHandler(), new TestHandler()]; $handler = new WhatFailureGroupHandler($testHandlers); $handler->handle($this->getRecord(Logger::DEBUG)); $handler->handle($this->getRecord(Logger::INFO)); @@ -47,9 +47,9 @@ class WhatFailureGroupHandlerTest extends TestCase */ public function testHandleBatch() { - $testHandlers = array(new TestHandler(), new TestHandler()); + $testHandlers = [new TestHandler(), new TestHandler()]; $handler = new WhatFailureGroupHandler($testHandlers); - $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO))); + $handler->handleBatch([$this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO)]); foreach ($testHandlers as $test) { $this->assertTrue($test->hasDebugRecords()); $this->assertTrue($test->hasInfoRecords()); @@ -62,7 +62,7 @@ class WhatFailureGroupHandlerTest extends TestCase */ public function testIsHandling() { - $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING)); + $testHandlers = [new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING)]; $handler = new WhatFailureGroupHandler($testHandlers); $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR))); $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING))); @@ -75,7 +75,7 @@ class WhatFailureGroupHandlerTest extends TestCase public function testHandleUsesProcessors() { $test = new TestHandler(); - $handler = new WhatFailureGroupHandler(array($test)); + $handler = new WhatFailureGroupHandler([$test]); $handler->pushProcessor(function ($record) { $record['extra']['foo'] = true; @@ -94,7 +94,7 @@ class WhatFailureGroupHandlerTest extends TestCase { $test = new TestHandler(); $exception = new ExceptionTestHandler(); - $handler = new WhatFailureGroupHandler(array($exception, $test, $exception)); + $handler = new WhatFailureGroupHandler([$exception, $test, $exception]); $handler->pushProcessor(function ($record) { $record['extra']['foo'] = true; @@ -112,7 +112,7 @@ class ExceptionTestHandler extends TestHandler /** * {@inheritdoc} */ - public function handle(array $record) + public function handle(array $record): bool { parent::handle($record); diff --git a/tests/Monolog/Handler/ZendMonitorHandlerTest.php b/tests/Monolog/Handler/ZendMonitorHandlerTest.php index 69b001e..4879ebe 100644 --- a/tests/Monolog/Handler/ZendMonitorHandlerTest.php +++ b/tests/Monolog/Handler/ZendMonitorHandlerTest.php @@ -1,4 +1,5 @@ -<?php +<?php declare(strict_types=1); + /* * This file is part of the Monolog package. * @@ -10,7 +11,7 @@ namespace Monolog\Handler; -use Monolog\TestCase; +use Monolog\Test\TestCase; class ZendMonitorHandlerTest extends TestCase { @@ -29,12 +30,12 @@ class ZendMonitorHandlerTest extends TestCase public function testWrite() { $record = $this->getRecord(); - $formatterResult = array( + $formatterResult = [ 'message' => $record['message'], - ); + ]; $zendMonitor = $this->getMockBuilder('Monolog\Handler\ZendMonitorHandler') - ->setMethods(array('writeZendMonitorCustomEvent', 'getDefaultFormatter')) + ->setMethods(['writeZendMonitorCustomEvent', 'getDefaultFormatter']) ->getMock(); $formatterMock = $this->getMockBuilder('Monolog\Formatter\NormalizerFormatter') diff --git a/tests/Monolog/LoggerTest.php b/tests/Monolog/LoggerTest.php index c0bd1da..75c2dbd 100644 --- a/tests/Monolog/LoggerTest.php +++ b/tests/Monolog/LoggerTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -38,7 +38,7 @@ class LoggerTest extends \PHPUnit_Framework_TestCase */ public function testWithName() { - $first = new Logger('first', array($handler = new TestHandler())); + $first = new Logger('first', [$handler = new TestHandler()]); $second = $first->withName('second'); $this->assertSame('first', $first->getName()); @@ -78,7 +78,7 @@ class LoggerTest extends \PHPUnit_Framework_TestCase $logger = new Logger('foo'); $handler = new TestHandler; $logger->pushHandler($handler); - $logger->addWarning('test'); + $logger->warning('test'); list($record) = $handler->getRecords(); $this->assertEquals('foo', $record['channel']); } @@ -90,12 +90,12 @@ class LoggerTest extends \PHPUnit_Framework_TestCase { $logger = new Logger(__METHOD__); - $handler = $this->getMock('Monolog\Handler\NullHandler', array('handle')); + $handler = $this->getMock('Monolog\Handler\NullHandler', ['handle']); $handler->expects($this->once()) ->method('handle'); $logger->pushHandler($handler); - $this->assertTrue($logger->addWarning('test')); + $this->assertTrue($logger->warning('test')); } /** @@ -105,19 +105,19 @@ class LoggerTest extends \PHPUnit_Framework_TestCase { $logger = new Logger(__METHOD__); - $handler = $this->getMock('Monolog\Handler\NullHandler', array('handle'), array(Logger::ERROR)); + $handler = $this->getMock('Monolog\Handler\NullHandler', ['handle'], [Logger::ERROR]); $handler->expects($this->never()) ->method('handle'); $logger->pushHandler($handler); - $this->assertFalse($logger->addWarning('test')); + $this->assertFalse($logger->warning('test')); } public function testHandlersInCtor() { $handler1 = new TestHandler; $handler2 = new TestHandler; - $logger = new Logger(__METHOD__, array($handler1, $handler2)); + $logger = new Logger(__METHOD__, [$handler1, $handler2]); $this->assertEquals($handler1, $logger->popHandler()); $this->assertEquals($handler2, $logger->popHandler()); @@ -127,7 +127,7 @@ class LoggerTest extends \PHPUnit_Framework_TestCase { $processor1 = new WebProcessor; $processor2 = new WebProcessor; - $logger = new Logger(__METHOD__, array(), array($processor1, $processor2)); + $logger = new Logger(__METHOD__, [], [$processor1, $processor2]); $this->assertEquals($processor1, $logger->popProcessor()); $this->assertEquals($processor2, $logger->popProcessor()); @@ -162,18 +162,18 @@ class LoggerTest extends \PHPUnit_Framework_TestCase $handler2 = new TestHandler; $logger->pushHandler($handler1); - $logger->setHandlers(array($handler2)); + $logger->setHandlers([$handler2]); // handler1 has been removed - $this->assertEquals(array($handler2), $logger->getHandlers()); + $this->assertEquals([$handler2], $logger->getHandlers()); - $logger->setHandlers(array( + $logger->setHandlers([ "AMapKey" => $handler1, "Woop" => $handler2, - )); + ]); // Keys have been scrubbed - $this->assertEquals(array($handler1, $handler2), $logger->getHandlers()); + $this->assertEquals([$handler1, $handler2], $logger->getHandlers()); } /** @@ -196,17 +196,6 @@ class LoggerTest extends \PHPUnit_Framework_TestCase } /** - * @covers Monolog\Logger::pushProcessor - * @expectedException InvalidArgumentException - */ - public function testPushProcessorWithNonCallable() - { - $logger = new Logger(__METHOD__); - - $logger->pushProcessor(new \stdClass()); - } - - /** * @covers Monolog\Logger::addRecord */ public function testProcessorsAreExecuted() @@ -219,7 +208,7 @@ class LoggerTest extends \PHPUnit_Framework_TestCase return $record; }); - $logger->addError('test'); + $logger->error('test'); list($record) = $handler->getRecords(); $this->assertTrue($record['extra']['win']); } @@ -243,7 +232,7 @@ class LoggerTest extends \PHPUnit_Framework_TestCase $processor = $this->getMockBuilder('Monolog\Processor\WebProcessor') ->disableOriginalConstructor() - ->setMethods(array('__invoke')) + ->setMethods(['__invoke']) ->getMock() ; $processor->expects($this->once()) @@ -252,7 +241,7 @@ class LoggerTest extends \PHPUnit_Framework_TestCase ; $logger->pushProcessor($processor); - $logger->addError('test'); + $logger->error('test'); } /** @@ -271,7 +260,7 @@ class LoggerTest extends \PHPUnit_Framework_TestCase $logger->pushProcessor(function ($record) use ($that) { $that->fail('The processor should not be called'); }); - $logger->addAlert('test'); + $logger->alert('test'); } /** @@ -350,7 +339,7 @@ class LoggerTest extends \PHPUnit_Framework_TestCase ->method('handle') ; - $logger = new Logger(__METHOD__, array('last' => $handler3, 'second' => $handler2, 'first' => $handler1)); + $logger = new Logger(__METHOD__, ['last' => $handler3, 'second' => $handler2, 'first' => $handler1]); $logger->debug('test'); } @@ -446,22 +435,14 @@ class LoggerTest extends \PHPUnit_Framework_TestCase /** * @dataProvider logMethodProvider - * @covers Monolog\Logger::addDebug - * @covers Monolog\Logger::addInfo - * @covers Monolog\Logger::addNotice - * @covers Monolog\Logger::addWarning - * @covers Monolog\Logger::addError - * @covers Monolog\Logger::addCritical - * @covers Monolog\Logger::addAlert - * @covers Monolog\Logger::addEmergency * @covers Monolog\Logger::debug * @covers Monolog\Logger::info * @covers Monolog\Logger::notice - * @covers Monolog\Logger::warn - * @covers Monolog\Logger::err - * @covers Monolog\Logger::crit + * @covers Monolog\Logger::warning + * @covers Monolog\Logger::error + * @covers Monolog\Logger::critical * @covers Monolog\Logger::alert - * @covers Monolog\Logger::emerg + * @covers Monolog\Logger::emergency */ public function testLogMethods($method, $expectedLevel) { @@ -475,27 +456,17 @@ class LoggerTest extends \PHPUnit_Framework_TestCase public function logMethodProvider() { - return array( - // monolog methods - array('addDebug', Logger::DEBUG), - array('addInfo', Logger::INFO), - array('addNotice', Logger::NOTICE), - array('addWarning', Logger::WARNING), - array('addError', Logger::ERROR), - array('addCritical', Logger::CRITICAL), - array('addAlert', Logger::ALERT), - array('addEmergency', Logger::EMERGENCY), - - // ZF/Sf2 compat methods - array('debug', Logger::DEBUG), - array('info', Logger::INFO), - array('notice', Logger::NOTICE), - array('warn', Logger::WARNING), - array('err', Logger::ERROR), - array('crit', Logger::CRITICAL), - array('alert', Logger::ALERT), - array('emerg', Logger::EMERGENCY), - ); + return [ + // PSR-3 methods + ['debug', Logger::DEBUG], + ['info', Logger::INFO], + ['notice', Logger::NOTICE], + ['warning', Logger::WARNING], + ['error', Logger::ERROR], + ['critical', Logger::CRITICAL], + ['alert', Logger::ALERT], + ['emergency', Logger::EMERGENCY], + ]; } /** @@ -504,8 +475,8 @@ class LoggerTest extends \PHPUnit_Framework_TestCase */ public function testSetTimezone($tz) { - Logger::setTimezone($tz); $logger = new Logger('foo'); + $logger->setTimezone($tz); $handler = new TestHandler; $logger->pushHandler($handler); $logger->info('test'); @@ -516,7 +487,9 @@ class LoggerTest extends \PHPUnit_Framework_TestCase public function setTimezoneProvider() { return array_map( - function ($tz) { return array(new \DateTimeZone($tz)); }, + function ($tz) { + return [new \DateTimeZone($tz)]; + }, \DateTimeZone::listIdentifiers() ); } @@ -539,10 +512,10 @@ class LoggerTest extends \PHPUnit_Framework_TestCase public function useMicrosecondTimestampsProvider() { - return array( + return [ // this has a very small chance of a false negative (1/10^6) - 'with microseconds' => array(true, 'assertNotSame'), - 'without microseconds' => array(false, 'assertSame'), - ); + 'with microseconds' => [true, 'assertNotSame'], + 'without microseconds' => [false, 'assertSame'], + ]; } } diff --git a/tests/Monolog/Processor/GitProcessorTest.php b/tests/Monolog/Processor/GitProcessorTest.php index 5adb505..0059e6d 100644 --- a/tests/Monolog/Processor/GitProcessorTest.php +++ b/tests/Monolog/Processor/GitProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Processor; -use Monolog\TestCase; +use Monolog\Test\TestCase; class GitProcessorTest extends TestCase { diff --git a/tests/Monolog/Processor/IntrospectionProcessorTest.php b/tests/Monolog/Processor/IntrospectionProcessorTest.php index 0dd411d..5f5d9ae 100644 --- a/tests/Monolog/Processor/IntrospectionProcessorTest.php +++ b/tests/Monolog/Processor/IntrospectionProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -27,7 +27,7 @@ function tester($handler, $record) namespace Monolog\Processor; use Monolog\Logger; -use Monolog\TestCase; +use Monolog\Test\TestCase; use Monolog\Handler\TestHandler; class IntrospectionProcessorTest extends TestCase @@ -66,10 +66,10 @@ class IntrospectionProcessorTest extends TestCase public function testLevelTooLow() { - $input = array( + $input = [ 'level' => Logger::DEBUG, - 'extra' => array(), - ); + 'extra' => [], + ]; $expected = $input; @@ -81,18 +81,18 @@ class IntrospectionProcessorTest extends TestCase public function testLevelEqual() { - $input = array( + $input = [ 'level' => Logger::CRITICAL, - 'extra' => array(), - ); + 'extra' => [], + ]; $expected = $input; - $expected['extra'] = array( + $expected['extra'] = [ 'file' => null, 'line' => null, 'class' => 'ReflectionMethod', 'function' => 'invokeArgs', - ); + ]; $processor = new IntrospectionProcessor(Logger::CRITICAL); $actual = $processor($input); @@ -102,18 +102,18 @@ class IntrospectionProcessorTest extends TestCase public function testLevelHigher() { - $input = array( + $input = [ 'level' => Logger::EMERGENCY, - 'extra' => array(), - ); + 'extra' => [], + ]; $expected = $input; - $expected['extra'] = array( + $expected['extra'] = [ 'file' => null, 'line' => null, 'class' => 'ReflectionMethod', 'function' => 'invokeArgs', - ); + ]; $processor = new IntrospectionProcessor(Logger::CRITICAL); $actual = $processor($input); diff --git a/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php b/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php index eb66614..cd80527 100644 --- a/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php +++ b/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Processor; -use Monolog\TestCase; +use Monolog\Test\TestCase; class MemoryPeakUsageProcessorTest extends TestCase { diff --git a/tests/Monolog/Processor/MemoryUsageProcessorTest.php b/tests/Monolog/Processor/MemoryUsageProcessorTest.php index 4692dbf..a4809cb 100644 --- a/tests/Monolog/Processor/MemoryUsageProcessorTest.php +++ b/tests/Monolog/Processor/MemoryUsageProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Processor; -use Monolog\TestCase; +use Monolog\Test\TestCase; class MemoryUsageProcessorTest extends TestCase { diff --git a/tests/Monolog/Processor/ProcessIdProcessorTest.php b/tests/Monolog/Processor/ProcessIdProcessorTest.php index 458d2a3..ec39e8e 100644 --- a/tests/Monolog/Processor/ProcessIdProcessorTest.php +++ b/tests/Monolog/Processor/ProcessIdProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Processor; -use Monolog\TestCase; +use Monolog\Test\TestCase; class ProcessIdProcessorTest extends TestCase { diff --git a/tests/Monolog/Processor/PsrLogMessageProcessorTest.php b/tests/Monolog/Processor/PsrLogMessageProcessorTest.php index 029a0c0..77db842 100644 --- a/tests/Monolog/Processor/PsrLogMessageProcessorTest.php +++ b/tests/Monolog/Processor/PsrLogMessageProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -20,24 +20,24 @@ class PsrLogMessageProcessorTest extends \PHPUnit_Framework_TestCase { $proc = new PsrLogMessageProcessor; - $message = $proc(array( + $message = $proc([ 'message' => '{foo}', - 'context' => array('foo' => $val), - )); + 'context' => ['foo' => $val], + ]); $this->assertEquals($expected, $message['message']); } public function getPairs() { - return array( - array('foo', 'foo'), - array('3', '3'), - array(3, '3'), - array(null, ''), - array(true, '1'), - array(false, ''), - array(new \stdClass, '[object stdClass]'), - array(array(), '[array]'), - ); + return [ + ['foo', 'foo'], + ['3', '3'], + [3, '3'], + [null, ''], + [true, '1'], + [false, ''], + [new \stdClass, '[object stdClass]'], + [[], '[array]'], + ]; } } diff --git a/tests/Monolog/Processor/TagProcessorTest.php b/tests/Monolog/Processor/TagProcessorTest.php index 0d860c6..da84378 100644 --- a/tests/Monolog/Processor/TagProcessorTest.php +++ b/tests/Monolog/Processor/TagProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Processor; -use Monolog\TestCase; +use Monolog\Test\TestCase; class TagProcessorTest extends TestCase { @@ -20,7 +20,7 @@ class TagProcessorTest extends TestCase */ public function testProcessor() { - $tags = array(1, 2, 3); + $tags = [1, 2, 3]; $processor = new TagProcessor($tags); $record = $processor($this->getRecord()); @@ -32,18 +32,18 @@ class TagProcessorTest extends TestCase */ public function testProcessorTagModification() { - $tags = array(1, 2, 3); + $tags = [1, 2, 3]; $processor = new TagProcessor($tags); $record = $processor($this->getRecord()); $this->assertEquals($tags, $record['extra']['tags']); - $processor->setTags(array('a', 'b')); + $processor->setTags(['a', 'b']); $record = $processor($this->getRecord()); - $this->assertEquals(array('a', 'b'), $record['extra']['tags']); + $this->assertEquals(['a', 'b'], $record['extra']['tags']); - $processor->addTags(array('a', 'c', 'foo' => 'bar')); + $processor->addTags(['a', 'c', 'foo' => 'bar']); $record = $processor($this->getRecord()); - $this->assertEquals(array('a', 'b', 'a', 'c', 'foo' => 'bar'), $record['extra']['tags']); + $this->assertEquals(['a', 'b', 'a', 'c', 'foo' => 'bar'], $record['extra']['tags']); } } diff --git a/tests/Monolog/Processor/UidProcessorTest.php b/tests/Monolog/Processor/UidProcessorTest.php index 5d13058..927d564 100644 --- a/tests/Monolog/Processor/UidProcessorTest.php +++ b/tests/Monolog/Processor/UidProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,7 +11,7 @@ namespace Monolog\Processor; -use Monolog\TestCase; +use Monolog\Test\TestCase; class UidProcessorTest extends TestCase { diff --git a/tests/Monolog/Processor/WebProcessorTest.php b/tests/Monolog/Processor/WebProcessorTest.php index 4105baf..6da6ab8 100644 --- a/tests/Monolog/Processor/WebProcessorTest.php +++ b/tests/Monolog/Processor/WebProcessorTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -11,20 +11,20 @@ namespace Monolog\Processor; -use Monolog\TestCase; +use Monolog\Test\TestCase; class WebProcessorTest extends TestCase { public function testProcessor() { - $server = array( + $server = [ 'REQUEST_URI' => 'A', 'REMOTE_ADDR' => 'B', 'REQUEST_METHOD' => 'C', 'HTTP_REFERER' => 'D', 'SERVER_NAME' => 'F', 'UNIQUE_ID' => 'G', - ); + ]; $processor = new WebProcessor($server); $record = $processor($this->getRecord()); @@ -38,10 +38,10 @@ class WebProcessorTest extends TestCase public function testProcessorDoNothingIfNoRequestUri() { - $server = array( + $server = [ 'REMOTE_ADDR' => 'B', 'REQUEST_METHOD' => 'C', - ); + ]; $processor = new WebProcessor($server); $record = $processor($this->getRecord()); $this->assertEmpty($record['extra']); @@ -49,12 +49,12 @@ class WebProcessorTest extends TestCase public function testProcessorReturnNullIfNoHttpReferer() { - $server = array( + $server = [ 'REQUEST_URI' => 'A', 'REMOTE_ADDR' => 'B', 'REQUEST_METHOD' => 'C', 'SERVER_NAME' => 'F', - ); + ]; $processor = new WebProcessor($server); $record = $processor($this->getRecord()); $this->assertNull($record['extra']['referrer']); @@ -62,12 +62,12 @@ class WebProcessorTest extends TestCase public function testProcessorDoesNotAddUniqueIdIfNotPresent() { - $server = array( + $server = [ 'REQUEST_URI' => 'A', 'REMOTE_ADDR' => 'B', 'REQUEST_METHOD' => 'C', 'SERVER_NAME' => 'F', - ); + ]; $processor = new WebProcessor($server); $record = $processor($this->getRecord()); $this->assertFalse(isset($record['extra']['unique_id'])); @@ -75,32 +75,32 @@ class WebProcessorTest extends TestCase public function testProcessorAddsOnlyRequestedExtraFields() { - $server = array( + $server = [ 'REQUEST_URI' => 'A', 'REMOTE_ADDR' => 'B', 'REQUEST_METHOD' => 'C', 'SERVER_NAME' => 'F', - ); + ]; - $processor = new WebProcessor($server, array('url', 'http_method')); + $processor = new WebProcessor($server, ['url', 'http_method']); $record = $processor($this->getRecord()); - $this->assertSame(array('url' => 'A', 'http_method' => 'C'), $record['extra']); + $this->assertSame(['url' => 'A', 'http_method' => 'C'], $record['extra']); } public function testProcessorConfiguringOfExtraFields() { - $server = array( + $server = [ 'REQUEST_URI' => 'A', 'REMOTE_ADDR' => 'B', 'REQUEST_METHOD' => 'C', 'SERVER_NAME' => 'F', - ); + ]; - $processor = new WebProcessor($server, array('url' => 'REMOTE_ADDR')); + $processor = new WebProcessor($server, ['url' => 'REMOTE_ADDR']); $record = $processor($this->getRecord()); - $this->assertSame(array('url' => 'B'), $record['extra']); + $this->assertSame(['url' => 'B'], $record['extra']); } /** diff --git a/tests/Monolog/PsrLogCompatTest.php b/tests/Monolog/PsrLogCompatTest.php index ab89944..a4bbcd0 100644 --- a/tests/Monolog/PsrLogCompatTest.php +++ b/tests/Monolog/PsrLogCompatTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. diff --git a/tests/Monolog/RegistryTest.php b/tests/Monolog/RegistryTest.php index 15fdfbd..ef4e452 100644 --- a/tests/Monolog/RegistryTest.php +++ b/tests/Monolog/RegistryTest.php @@ -1,4 +1,4 @@ -<?php +<?php declare(strict_types=1); /* * This file is part of the Monolog package. @@ -38,26 +38,26 @@ class RegistryTest extends \PHPUnit_Framework_TestCase $logger2 = new Logger('test2'); $logger3 = new Logger('test3'); - return array( + return [ // only instances - array( - array($logger1), - array($logger1, $logger2), - array(true, false), - ), + [ + [$logger1], + [$logger1, $logger2], + [true, false], + ], // only names - array( - array($logger1), - array('test1', 'test2'), - array(true, false), - ), + [ + [$logger1], + ['test1', 'test2'], + [true, false], + ], // mixed case - array( - array($logger1, $logger2), - array('test1', $logger2, 'test3', $logger3), - array(true, true, false, false), - ), - ); + [ + [$logger1, $logger2], + ['test1', $logger2, 'test3', $logger3], + [true, true, false, false], + ], + ]; } /** @@ -90,10 +90,10 @@ class RegistryTest extends \PHPUnit_Framework_TestCase { $logger1 = new Logger('test1'); - return array( - array($logger1, $logger1), - array($logger1, 'test1'), - ); + return [ + [$logger1, $logger1], + [$logger1, 'test1'], + ]; } /** diff --git a/tests/Monolog/TestCase.php b/tests/Monolog/TestCase.php deleted file mode 100644 index 4eb7b4c..0000000 --- a/tests/Monolog/TestCase.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -/* - * This file is part of the Monolog package. - * - * (c) Jordi Boggiano <j.boggiano@seld.be> - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Monolog; - -class TestCase extends \PHPUnit_Framework_TestCase -{ - /** - * @return array Record - */ - protected function getRecord($level = Logger::WARNING, $message = 'test', $context = array()) - { - return array( - 'message' => $message, - 'context' => $context, - 'level' => $level, - 'level_name' => Logger::getLevelName($level), - 'channel' => 'test', - 'datetime' => \DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true))), - 'extra' => array(), - ); - } - - /** - * @return array - */ - protected function getMultipleRecords() - { - return array( - $this->getRecord(Logger::DEBUG, 'debug message 1'), - $this->getRecord(Logger::DEBUG, 'debug message 2'), - $this->getRecord(Logger::INFO, 'information'), - $this->getRecord(Logger::WARNING, 'warning'), - $this->getRecord(Logger::ERROR, 'error'), - ); - } - - /** - * @return Monolog\Formatter\FormatterInterface - */ - protected function getIdentityFormatter() - { - $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface'); - $formatter->expects($this->any()) - ->method('format') - ->will($this->returnCallback(function ($record) { return $record['message']; })); - - return $formatter; - } -} diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 0000000..d475dd3 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,14 @@ +<?php declare(strict_types=1); + +/* + * This file is part of the Monolog package. + * + * (c) Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +date_default_timezone_set('UTC'); + +require __DIR__.'/../vendor/autoload.php'; |