ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
JsonFormatterTest.php
Go to the documentation of this file.
1<?php
2
3/*
4 * This file is part of the Monolog package.
5 *
6 * (c) Jordi Boggiano <j.boggiano@seld.be>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Monolog\Formatter;
13
16
18{
24 public function testConstruct()
25 {
26 $formatter = new JsonFormatter();
27 $this->assertEquals(JsonFormatter::BATCH_MODE_JSON, $formatter->getBatchMode());
28 $this->assertEquals(true, $formatter->isAppendingNewlines());
30 $this->assertEquals(JsonFormatter::BATCH_MODE_NEWLINES, $formatter->getBatchMode());
31 $this->assertEquals(false, $formatter->isAppendingNewlines());
32 }
33
37 public function testFormat()
38 {
39 $formatter = new JsonFormatter();
40 $record = $this->getRecord();
41 $this->assertEquals(json_encode($record)."\n", $formatter->format($record));
42
43 $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false);
44 $record = $this->getRecord();
45 $this->assertEquals(json_encode($record), $formatter->format($record));
46 }
47
52 public function testFormatBatch()
53 {
54 $formatter = new JsonFormatter();
55 $records = array(
58 );
59 $this->assertEquals(json_encode($records), $formatter->formatBatch($records));
60 }
61
66 public function testFormatBatchNewlines()
67 {
69 $records = $expected = array(
72 );
73 array_walk($expected, function (&$value, $key) {
74 $value = json_encode($value);
75 });
76 $this->assertEquals(implode("\n", $expected), $formatter->formatBatch($records));
77 }
78
80 {
81 $formatter = new JsonFormatter();
82 $exception = new \RuntimeException('Foo');
83 $message = $formatter->format(array(
84 'level_name' => 'CRITICAL',
85 'channel' => 'core',
86 'context' => array('exception' => $exception),
87 'datetime' => new \DateTime(),
88 'extra' => array(),
89 'message' => 'foobar',
90 ));
91
92 if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
93 $path = substr(json_encode($exception->getFile(), JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), 1, -1);
94 } else {
95 $path = substr(json_encode($exception->getFile()), 1, -1);
96 }
97 $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);
98 }
99
101 {
102 $formatter = new JsonFormatter();
103 $exception = new \RuntimeException('Foo', 0, new \LogicException('Wut?'));
104 $message = $formatter->format(array(
105 'level_name' => 'CRITICAL',
106 'channel' => 'core',
107 'context' => array('exception' => $exception),
108 'datetime' => new \DateTime(),
109 'extra' => array(),
110 'message' => 'foobar',
111 ));
112
113 if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
114 $pathPrevious = substr(json_encode($exception->getPrevious()->getFile(), JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), 1, -1);
115 $pathException = substr(json_encode($exception->getFile(), JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), 1, -1);
116 } else {
117 $pathPrevious = substr(json_encode($exception->getPrevious()->getFile()), 1, -1);
118 $pathException = substr(json_encode($exception->getFile()), 1, -1);
119 }
120 $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);
121 }
122}
An exception for terminatinating execution or to throw for unit testing.
testFormatBatch()
@covers Monolog\Formatter\JsonFormatter::formatBatch @covers Monolog\Formatter\JsonFormatter::formatB...
testFormat()
@covers Monolog\Formatter\JsonFormatter::format
testConstruct()
@covers Monolog\Formatter\JsonFormatter::__construct @covers Monolog\Formatter\JsonFormatter::getBatc...
testFormatBatchNewlines()
@covers Monolog\Formatter\JsonFormatter::formatBatch @covers Monolog\Formatter\JsonFormatter::formatB...
Encodes whatever record data is passed to it as json.
Monolog log channel.
Definition: Logger.php:28
const WARNING
Exceptional occurrences that are not errors.
Definition: Logger.php:52
const DEBUG
Detailed debug information.
Definition: Logger.php:32
getRecord($level=Logger::WARNING, $message='test', $context=array())
Definition: TestCase.php:19
$key
Definition: croninfo.php:18
catch(Exception $e) $message
$records
Definition: simple_test.php:22