diff options
Diffstat (limited to 'tests/Monolog/Formatter/LineFormatterTest.php')
-rw-r--r-- | tests/Monolog/Formatter/LineFormatterTest.php | 158 |
1 files changed, 88 insertions, 70 deletions
diff --git a/tests/Monolog/Formatter/LineFormatterTest.php b/tests/Monolog/Formatter/LineFormatterTest.php index 310d93c..a8b55e4 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. @@ -14,141 +14,159 @@ namespace Monolog\Formatter; /** * @covers Monolog\Formatter\LineFormatter */ -class LineFormatterTest extends \PHPUnit_Framework_TestCase +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__)); $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {"exception":"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).')"} []'."\n", $message); } + public function testDefFormatWithExceptionAndStacktrace() + { + $formatter = new LineFormatter(null, 'Y-m-d'); + $formatter->includeStacktraces(); + $message = $formatter->format([ + 'level_name' => 'CRITICAL', + 'channel' => 'core', + 'context' => ['exception' => new \RuntimeException('Foo')], + 'datetime' => new \DateTimeImmutable, + 'extra' => [], + 'message' => 'foobar', + ]); + + $path = str_replace('\\/', '/', json_encode(__FILE__)); + + $this->assertRegexp('{^\['.date('Y-m-d').'] core\.CRITICAL: foobar \{"exception":"\[object] \(RuntimeException\(code: 0\): Foo at '.preg_quote(substr($path, 1, -1)).':'.(__LINE__ - 8).'\)\n\[stacktrace]\n#0}', $message); + } + public function testDefFormatWithPreviousException() { $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 +176,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 +201,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 +215,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 +228,7 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase class TestFoo { - public $foo = 'foo'; + public $foo = 'fooValue'; } class TestBar |