Created
October 24, 2019 14:56
-
-
Save tomasnorre/120dbde41b98b8f4d52234d4f0946864 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Aoe\AoeDbSequenzer\Xclass; | |
use Aoe\AoeDbSequenzer\Sequenzer; | |
use Aoe\AoeDbSequenzer\Service\Typo3Service; | |
use TYPO3\CMS\Core\Database\Query\QueryBuilder as CoreQueryBuilder; | |
use TYPO3\CMS\Core\Utility\GeneralUtility; | |
/** | |
* @package Aoe\AoeDbSequenzer\Xclass | |
*/ | |
class QueryBuilder extends CoreQueryBuilder | |
{ | |
/** | |
* Determines the defined table name without quotation marks (`). | |
* | |
* @return string | |
*/ | |
protected function getTableName() | |
{ | |
$mark = '`'; | |
$tableName = $this->concreteQueryBuilder->getQueryPart('from')['table']; | |
if (!empty($tableName) && $tableName[0] === $mark && $tableName[strlen($tableName) - 1] === $mark) { | |
return str_replace($mark, '', $tableName); | |
} | |
return $tableName; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Aoe\AoeDbSequenzer\Tests\Functional\Xclass; | |
use Aoe\AoeDbSequenzer\Xclass\QueryBuilder; | |
use Doctrine\DBAL\Driver\PDOMySql\Driver; | |
use Nimut\TestingFramework\TestCase\FunctionalTestCase; | |
use TYPO3\CMS\Core\Database\Connection; | |
use TYPO3\CMS\Core\Utility\GeneralUtility; | |
class QueryBuilderTest extends FunctionalTestCase | |
/** | |
* @var QueryBuilder | |
*/ | |
protected $subject; | |
/** | |
* @test | |
*/ | |
public function getTableNameReturnsStringWithoutQuotationMarks() | |
{ | |
$params = []; | |
$driver = new Driver(); | |
$connection = GeneralUtility::makeInstance(Connection::class, $params, $driver); | |
$this->subject = $this->getAccessibleMock(QueryBuilder::class, ['dummy'], [$connection]); | |
$mockedQueryBuilder = $this->getAccessibleMock(\Doctrine\DBAL\Query\QueryBuilder::class, ['getQueryPart'], [$connection]); | |
$mockedQueryBuilder->expects($this->any())->method('getQueryPart')->willReturn($this->returnValue("`tableName`")); | |
$this->inject($this->subject, 'concreteQueryBuilder', $mockedQueryBuilder); | |
$this->assertEquals( | |
'tableName', | |
$this->subject->_call('getTableName') | |
); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment