![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/framework/DB/Test/Unit/Select/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\DB\Test\Unit\Select; use Magento\Framework\DB\Platform\Quote; use Magento\Framework\DB\Select; use Magento\Framework\DB\Select\FromRenderer; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class FromRendererTest extends TestCase { /** * @var FromRenderer */ protected $model; /** * @var Quote|MockObject */ protected $quoteMock; /** * @var Select|MockObject */ protected $selectMock; /** * Set up * * @return void */ protected function setUp(): void { $objectManager = new ObjectManager($this); $this->quoteMock = $this->createPartialMock(Quote::class, ['quoteTableAs', 'quoteIdentifier']); $this->selectMock = $this->createPartialMock(Select::class, ['getPart']); $this->model = $objectManager->getObject( FromRenderer::class, ['quote' => $this->quoteMock] ); } public function testRenderNoPart() { $sql = 'SELECT'; $this->selectMock->expects($this->once()) ->method('getPart') ->with(Select::FROM) ->willReturn([]); $this->assertEquals($sql, $this->model->render($this->selectMock, $sql)); } /** * @param array $from * @param string $sql * @param string $expectedResult * @dataProvider renderDataProvider */ public function testRender($from, $sql, $expectedResult) { $this->quoteMock->expects($this->any()) ->method('quoteIdentifier') ->willReturnArgument(0); $this->quoteMock->expects($this->any()) ->method('quoteTableAs') ->willReturnCallback( function ($tableName, $correlationName) { return $tableName . ' AS ' . $correlationName; } ); $this->selectMock->expects($this->once()) ->method('getPart') ->with(Select::FROM) ->willReturn($from); $this->assertEquals($expectedResult, $this->model->render($this->selectMock, $sql)); } /** * Data provider for testRender * @return array */ public function renderDataProvider() { return [ [ [['joinType' => Select::FROM, 'schema' => null, 'tableName' => 't1', 'joinCondition' => null]], 'SELECT *', 'SELECT * FROM t1 AS 0' ], [ [ 'a' => ['joinType' => Select::FROM, 'schema' => null, 'tableName' => 't1', 'joinCondition' => null], 'b' => ['joinType' => Select::FROM, 'schema' => null, 'tableName' => 't2', 'joinCondition' => null] ], 'SELECT a.*', 'SELECT a.* FROM t1 AS a' . "\n" . ' INNER JOIN t2 AS b' ], [ [ 'a' => ['joinType' => Select::FROM, 'schema' => null, 'tableName' => 't1', 'joinCondition' => null], 'b' => [ 'joinType' => Select::LEFT_JOIN, 'schema' => 'db', 'tableName' => 't2', 'joinCondition' => 't1.f1 = t2.f2' ] ], 'SELECT b.f2', 'SELECT b.f2 FROM t1 AS a' . "\n" . ' LEFT JOIN db.t2 AS b ON t1.f1 = t2.f2' ] ]; } }