‪TYPO3CMS  11.5
LoggerTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
26 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
27 
31 class ‪LoggerTest extends UnitTestCase
32 {
36  public function ‪getNameGetsLoggerName(): void
37  {
38  $logger = new ‪Logger('test.core.log');
39  self::assertSame('test.core.log', $logger->getName());
40  }
41 
46  {
47  $logger = new ‪Logger('test.core.log');
48  $writer = new ‪WriterFixture();
49  $logger->addWriter(LogLevel::ERROR, $writer);
50  // warning < error, thus must not be logged
51  $logger->log(LogLevel::WARNING, 'test message');
52  self::assertEmpty($writer->getRecords());
53  }
54 
58  public function ‪loggerReturnsItselfAfterLogging(): void
59  {
60  $logger = new ‪Logger('test.core.log');
61  $writer = new ‪WriterFixture();
62  $logger->addWriter(LogLevel::DEBUG, $writer);
63  $returnValue = $logger->log(LogLevel::WARNING, 'test message');
64  self::assertInstanceOf(Logger::class, $returnValue);
65  }
66 
71  {
72  $logger = new ‪Logger('test.core.log');
73  $returnValue = $logger->log(LogLevel::WARNING, 'test message');
74  self::assertInstanceOf(Logger::class, $returnValue);
75  }
76 
81  {
82  $logger = new ‪Logger('test.core.log');
83  $writer = new ‪WriterFixture();
84  $logger->addWriter(LogLevel::EMERGENCY, $writer);
85  $returnValue = $logger->log(LogLevel::WARNING, 'test message');
86  self::assertInstanceOf(Logger::class, $returnValue);
87  }
88 
92  public function ‪loggerCallsProcessor(): void
93  {
94  $component = 'test.core.log';
95  $level = LogLevel::DEBUG;
96  $message = 'test';
97  $logger = new ‪Logger($component);
98  $processor = $this->getMockBuilder(NullProcessor::class)
99  ->onlyMethods(['processLogRecord'])
100  ->getMock();
101  $processor->expects(self::once())->method('processLogRecord')->willReturn(new ‪LogRecord($component, $level, $message));
102  $logger->addProcessor($level, $processor);
103  // we need a writer, otherwise we will not process log records
104  $logger->addWriter($level, new ‪NullWriter());
105  $logger->warning($message);
106  }
107 
111  public function ‪loggerLogsRecord(): void
112  {
113  $logger = new ‪Logger('test.core.log');
114  $writer = $this->getMockBuilder(NullWriter::class)
115  ->onlyMethods(['writeLog'])
116  ->getMock();
117  $writer->expects(self::once())->method('writeLog');
118  $logger->addWriter(LogLevel::DEBUG, $writer);
119  $logger->warning('test');
120  }
121 
126  {
127  $logger = new ‪Logger('test.core.log');
128  $writer = new ‪WriterFixture();
129  $logger->addWriter(LogLevel::NOTICE, $writer);
130  // notice == notice, thus must be logged
131  $logger->log(LogLevel::NOTICE, 'test message');
132  self::assertNotEmpty($writer->getRecords());
133  }
134 
139  {
140  return [
141  ['emergency'],
142  ['alert'],
143  ['critical'],
144  ['error'],
145  ['warning'],
146  ['notice'],
147  ['info'],
148  ['debug'],
149  ];
150  }
151 
157  public function ‪loggerLogsRecordsThroughShorthandMethod(string $shorthandMethod): void
158  {
159  $logger = new ‪Logger('test.core.log');
160  $writer = new ‪WriterFixture();
161  $logger->addWriter(LogLevel::DEBUG, $writer);
162  $logger->$shorthandMethod('test message');
163  self::assertNotEmpty($writer->getRecords());
164  }
165 
170  {
171  $logger = new ‪Logger('test.core.log');
172  $writer = new ‪WriterFixture();
173  $logger->addWriter(LogLevel::NOTICE, $writer);
174  // warning > notice, thus must be logged
175  $logger->log(LogLevel::WARNING, 'test message');
176  self::assertNotEmpty($writer->getRecords());
177  }
178 
183  {
184  $logger = new ‪Logger('test.core.log');
185  $writer = new ‪WriterFixture();
186  $logger->addWriter(LogLevel::NOTICE, $writer);
187  $writers = $logger->getWriters();
188  self::assertContains($writer, $writers[LogLevel::NOTICE]);
189  }
190 
195  {
196  $logger = new ‪Logger('test.core.log');
197  $writer = new ‪WriterFixture();
198  $logger->addWriter(LogLevel::NOTICE, $writer);
199  $writers = $logger->getWriters();
200  self::assertContains($writer, $writers[LogLevel::EMERGENCY]);
201  }
202 }
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerReturnsItselfAfterLoggingLessCritical
‪loggerReturnsItselfAfterLoggingLessCritical()
Definition: LoggerTest.php:80
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerReturnsItselfAfterLogging
‪loggerReturnsItselfAfterLogging()
Definition: LoggerTest.php:58
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerLogsRecordsAtLeastAsCriticalAsLogLevel
‪loggerLogsRecordsAtLeastAsCriticalAsLogLevel()
Definition: LoggerTest.php:125
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\getNameGetsLoggerName
‪getNameGetsLoggerName()
Definition: LoggerTest.php:36
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerLogsRecordsThroughShorthandMethod
‪loggerLogsRecordsThroughShorthandMethod(string $shorthandMethod)
Definition: LoggerTest.php:157
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerLogsRecordsThroughShorthandMethodDataProvider
‪array loggerLogsRecordsThroughShorthandMethodDataProvider()
Definition: LoggerTest.php:138
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerLogsRecordsMoreCriticalThanLogLevel
‪loggerLogsRecordsMoreCriticalThanLogLevel()
Definition: LoggerTest.php:169
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\addWriterAddsWriterAlsoToHigherLevelsThanSpecified
‪addWriterAddsWriterAlsoToHigherLevelsThanSpecified()
Definition: LoggerTest.php:194
‪TYPO3\CMS\Core\Tests\Unit\Log
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerCallsProcessor
‪loggerCallsProcessor()
Definition: LoggerTest.php:92
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\addWriterAddsWriterToTheSpecifiedLevel
‪addWriterAddsWriterToTheSpecifiedLevel()
Definition: LoggerTest.php:182
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerLogsRecord
‪loggerLogsRecord()
Definition: LoggerTest.php:111
‪TYPO3\CMS\Core\Log\LogRecord
Definition: LogRecord.php:22
‪TYPO3\CMS\Core\Tests\Unit\Log\Fixtures\WriterFixture
Definition: WriterFixture.php:27
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest
Definition: LoggerTest.php:32
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerReturnsItselfAfterLoggingWithoutWriter
‪loggerReturnsItselfAfterLoggingWithoutWriter()
Definition: LoggerTest.php:70
‪TYPO3\CMS\Core\Tests\Unit\Log\LoggerTest\loggerDoesNotLogRecordsLessCriticalThanLogLevel
‪loggerDoesNotLogRecordsLessCriticalThanLogLevel()
Definition: LoggerTest.php:45
‪TYPO3\CMS\Core\Log\Logger
Definition: Logger.php:27
‪TYPO3\CMS\Core\Log\Writer\NullWriter
Definition: NullWriter.php:24
‪TYPO3\CMS\Core\Log\LogLevel
Definition: LogLevel.php:24
‪TYPO3\CMS\Core\Log\Processor\NullProcessor
Definition: NullProcessor.php:24