‪TYPO3CMS  ‪main
LogRecordTest.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 
20 use PHPUnit\Framework\Attributes\Test;
21 use Psr\Log\InvalidArgumentException;
22 use Psr\Log\LogLevel;
24 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
25 
26 final class ‪LogRecordTest extends UnitTestCase
27 {
33  protected function ‪getRecord(array $parameters = []): ‪LogRecord
34  {
36  $parameters['component'] ?? 'test.core.log',
37  $parameters['level'] ?? LogLevel::DEBUG,
38  $parameters['message'] ?? 'test message',
39  $parameters['data'] ?? []
40  );
41  return ‪$record;
42  }
43 
44  #[Test]
45  public function ‪constructorSetsCorrectComponent(): void
46  {
47  $component = 'test.core.log';
48  ‪$record = $this->‪getRecord(['component' => $component]);
49  self::assertEquals($component, ‪$record->getComponent());
50  }
51 
52  #[Test]
53  public function ‪constructorSetsCorrectLogLevel(): void
54  {
55  $logLevel = LogLevel::CRITICAL;
56  ‪$record = $this->‪getRecord(['level' => $logLevel]);
57  self::assertEquals($logLevel, ‪$record->getLevel());
58  }
59 
60  #[Test]
61  public function ‪constructorSetsCorrectMessage(): void
62  {
63  $logMessage = 'test message';
64  ‪$record = $this->‪getRecord(['message' => $logMessage]);
65  self::assertEquals($logMessage, ‪$record->getMessage());
66  }
67 
68  #[Test]
69  public function ‪constructorSetsCorrectData(): void
70  {
71  $dataArray = [
72  'foo' => 'bar',
73  ];
74  ‪$record = $this->‪getRecord(['data' => $dataArray]);
75  self::assertEquals($dataArray, ‪$record->getData());
76  }
77 
78  #[Test]
79  public function ‪setComponentSetsComponent(): void
80  {
81  ‪$record = $this->‪getRecord();
82  $component = 'testcomponent';
83  self::assertEquals($component, ‪$record->setComponent($component)->getComponent());
84  }
85 
86  #[Test]
87  public function ‪setLevelSetsLevel(): void
88  {
89  ‪$record = $this->‪getRecord();
90  $level = LogLevel::EMERGENCY;
91  self::assertEquals($level, ‪$record->setLevel($level)->getLevel());
92  }
93 
94  #[Test]
95  public function ‪setLevelValidatesLevel(): void
96  {
97  $this->expectException(InvalidArgumentException::class);
98  $this->expectExceptionCode(1550247164);
99 
100  ‪$record = $this->‪getRecord();
101  ‪$record->setLevel('foo');
102  }
103 
104  #[Test]
105  public function ‪setMessageSetsMessage(): void
106  {
107  ‪$record = $this->‪getRecord();
108  $message = 'testmessage';
109  self::assertEquals($message, ‪$record->setMessage($message)->getMessage());
110  }
111 
112  #[Test]
113  public function ‪setCreatedSetsCreated(): void
114  {
115  ‪$record = $this->‪getRecord();
116  $created = 123.45;
117  self::assertEquals($created, ‪$record->setCreated($created)->getCreated());
118  }
119 
120  #[Test]
121  public function ‪setRequestIdSetsRequestId(): void
122  {
123  ‪$record = $this->‪getRecord();
124  $requestId = 'testrequestid';
125  self::assertEquals($requestId, ‪$record->setRequestId($requestId)->getRequestId());
126  }
127 
128  #[Test]
129  public function ‪toArrayReturnsCorrectValues(): void
130  {
131  $component = 'test.core.log';
132  $level = LogLevel::DEBUG;
133  $message = 'test message';
134  $data = ['foo' => 'bar'];
135  ‪$record = new ‪LogRecord($component, $level, $message, $data);
136  $recordArray = ‪$record->toArray();
137  self::assertEquals($component, $recordArray['component']);
138  self::assertEquals($level, $recordArray['level']);
139  self::assertEquals($message, $recordArray['message']);
140  self::assertEquals($data, $recordArray['data']);
141  }
142 
143  #[Test]
144  public function ‪toStringIncludesDataAsJson(): void
145  {
146  $dataArray = ['foo' => 'bar'];
147  ‪$record = $this->‪getRecord(['data' => $dataArray]);
148  self::assertStringContainsString(json_encode($dataArray), (string)‪$record);
149  }
150 
151  #[Test]
153  {
154  $dataArray = ['exception' => new \Exception('foo', 1476049451)];
155  ‪$record = $this->‪getRecord(['data' => $dataArray]);
156  self::assertStringContainsString('Exception: foo', (string)‪$record);
157  }
158 }
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest
Definition: LogRecordTest.php:27
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\setLevelSetsLevel
‪setLevelSetsLevel()
Definition: LogRecordTest.php:87
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\constructorSetsCorrectMessage
‪constructorSetsCorrectMessage()
Definition: LogRecordTest.php:61
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\toArrayReturnsCorrectValues
‪toArrayReturnsCorrectValues()
Definition: LogRecordTest.php:129
‪TYPO3\CMS\Core\Tests\Unit\Log
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\setLevelValidatesLevel
‪setLevelValidatesLevel()
Definition: LogRecordTest.php:95
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\setComponentSetsComponent
‪setComponentSetsComponent()
Definition: LogRecordTest.php:79
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\constructorSetsCorrectLogLevel
‪constructorSetsCorrectLogLevel()
Definition: LogRecordTest.php:53
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\constructorSetsCorrectComponent
‪constructorSetsCorrectComponent()
Definition: LogRecordTest.php:45
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\constructorSetsCorrectData
‪constructorSetsCorrectData()
Definition: LogRecordTest.php:69
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\toStringIncludesExceptionDataAsJson
‪toStringIncludesExceptionDataAsJson()
Definition: LogRecordTest.php:152
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\setRequestIdSetsRequestId
‪setRequestIdSetsRequestId()
Definition: LogRecordTest.php:121
‪TYPO3\CMS\Core\Log\LogRecord
Definition: LogRecord.php:24
‪TYPO3\CMS\Webhooks\Message\$record
‪identifier readonly int readonly array $record
Definition: PageModificationMessage.php:36
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\setCreatedSetsCreated
‪setCreatedSetsCreated()
Definition: LogRecordTest.php:113
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\toStringIncludesDataAsJson
‪toStringIncludesDataAsJson()
Definition: LogRecordTest.php:144
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\getRecord
‪getRecord(array $parameters=[])
Definition: LogRecordTest.php:33
‪TYPO3\CMS\Core\Tests\Unit\Log\LogRecordTest\setMessageSetsMessage
‪setMessageSetsMessage()
Definition: LogRecordTest.php:105