[TASK] Migrate to short array syntax
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Tests / Unit / Log / Writer / DatabaseWriterTest.php
1 <?php
2 namespace TYPO3\CMS\Core\Tests\Unit\Log\Writer;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use Prophecy\Argument;
18 use TYPO3\CMS\Core\Database\Connection;
19 use TYPO3\CMS\Core\Database\ConnectionPool;
20 use TYPO3\CMS\Core\Utility\GeneralUtility;
21
22 /**
23 * Test case
24 */
25 class DatabaseWriterTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
26 {
27 /**
28 * @test
29 */
30 public function getTableReturnsPreviouslySetTable()
31 {
32 $logTable = $this->getUniqueId('logtable_');
33 /** @var \TYPO3\CMS\Core\Log\Writer\DatabaseWriter|\PHPUnit_Framework_MockObject_MockObject $subject */
34 $subject = $this->getMockBuilder(\TYPO3\CMS\Core\Log\Writer\DatabaseWriter::class)
35 ->setMethods(['dummy'])
36 ->disableOriginalConstructor()
37 ->getMock();
38 $subject->setLogTable($logTable);
39 $this->assertSame($logTable, $subject->getLogTable());
40 }
41
42 /**
43 * @test
44 */
45 public function writeLogInsertsToSpecifiedTable()
46 {
47 $logTable = $this->getUniqueId('logtable_');
48
49 $connectionProphecy = $this->prophesize(Connection::class);
50 $connectionPoolProphecy = $this->prophesize(ConnectionPool::class);
51 $connectionPoolProphecy->getConnectionForTable(Argument::cetera())->willReturn($connectionProphecy->reveal());
52
53 GeneralUtility::addInstance(ConnectionPool::class, $connectionPoolProphecy->reveal());
54 $logRecordMock = $this->createMock(\TYPO3\CMS\Core\Log\LogRecord::class);
55 $subject = $this->getMockBuilder(\TYPO3\CMS\Core\Log\Writer\DatabaseWriter::class)
56 ->setMethods(['dummy'])
57 ->disableOriginalConstructor()
58 ->getMock();
59 $subject->setLogTable($logTable);
60
61 // $logTable should end up as first insert argument
62 $connectionProphecy->insert($logTable, Argument::cetera())->willReturn(1);
63
64 $subject->writeLog($logRecordMock);
65 }
66 }