TYPO3 CMS  TYPO3_8-7
DatabaseWriterTest.php
Go to the documentation of this file.
1 <?php
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 
21 
25 class DatabaseWriterTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
26 {
30  public function getTableReturnsPreviouslySetTable()
31  {
32  $logTable = $this->getUniqueId('logtable_');
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 
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 }
static addInstance($className, $instance)