1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Framework\Indexer\Test\Unit\Handler;
- use Magento\Framework\Indexer\Handler\AttributeHandler;
- use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
- use Magento\Framework\App\ResourceConnection\SourceProviderInterface;
- /**
- * Unit test for Magento\Framework\Indexer\Handler\AttributeHandler.
- */
- class AttributeHandlerTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var SourceProviderInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- private $source;
- /**
- * @var AttributeHandler
- */
- private $subject;
- /**
- * @inheritdoc
- */
- protected function setUp()
- {
- $this->source = $this->getMockBuilder(SourceProviderInterface::class)
- ->disableOriginalConstructor()
- ->setMethods(['joinAttribute'])
- ->getMockForAbstractClass();
- $objectManager = new ObjectManager($this);
- $this->subject = $objectManager->getObject(AttributeHandler::class);
- }
- public function testPrepareSqlWithBindAndExistingJoinAttributeMethod()
- {
- $alias = 'e';
- $fieldInfo = [
- 'name' => 'is_approved',
- 'origin' => 'is_approved',
- 'type' => 'searchable',
- 'dataType' => 'varchar',
- 'entity' => 'customer',
- 'bind' => 'test',
- ];
- $this->source->expects($this->once())
- ->method('joinAttribute')
- ->with(
- $fieldInfo['name'],
- $fieldInfo['entity'] . '/' . $fieldInfo['origin'],
- $fieldInfo['bind'],
- null,
- 'left'
- )
- ->willReturnSelf();
- $this->subject->prepareSql($this->source, $alias, $fieldInfo);
- }
- public function testPrepareSqlWithoutBind()
- {
- $alias = 'e';
- $fieldInfo = [
- 'name' => 'is_approved',
- 'origin' => 'is_approved',
- 'type' => 'searchable',
- 'dataType' => 'varchar',
- 'entity' => 'customer',
- ];
- $this->source->expects($this->once())
- ->method('addFieldToSelect')
- ->with('is_approved', 'left');
- $this->subject->prepareSql($this->source, $alias, $fieldInfo);
- }
- }
|