diff --git a/lib/internal/Magento/Framework/Indexer/Handler/AttributeHandler.php b/lib/internal/Magento/Framework/Indexer/Handler/AttributeHandler.php index 94f34ec7ba3b254b3e17ae2b1b2c442ecc03e3d3..4b74ce50c9ed6e0f3ed38e5d826103aac9d892c2 100644 --- a/lib/internal/Magento/Framework/Indexer/Handler/AttributeHandler.php +++ b/lib/internal/Magento/Framework/Indexer/Handler/AttributeHandler.php @@ -35,7 +35,7 @@ class AttributeHandler implements HandlerInterface 'left' ); } else { - $source->addAttributeToSelect($fieldInfo['origin'], 'left'); + $source->addFieldToSelect($fieldInfo['origin'], 'left'); } } } diff --git a/lib/internal/Magento/Framework/Indexer/Test/Unit/Handler/AttributeHandlerTest.php b/lib/internal/Magento/Framework/Indexer/Test/Unit/Handler/AttributeHandlerTest.php new file mode 100644 index 0000000000000000000000000000000000000000..82b178e0ff4876bdac574dcb4a32c4cdbf3cac2b --- /dev/null +++ b/lib/internal/Magento/Framework/Indexer/Test/Unit/Handler/AttributeHandlerTest.php @@ -0,0 +1,57 @@ +<?php +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +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; + +class AttributeHandlerTest extends \PHPUnit\Framework\TestCase +{ + /** + * @var SourceProviderInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $source; + + /** + * @var AttributeHandler + */ + private $subject; + + protected function setUp() + { + $this->source = $this->getMockBuilder(SourceProviderInterface::class) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + + $objectManager = new ObjectManager($this); + + $this->subject = $objectManager->getObject( + AttributeHandler::class, + [] + ); + } + + public function testPrepareSql() + { + $alias = 'e'; + $fieldInfo = [ + 'name' => 'is_approved', + 'origin' => 'is_approved', + 'type' => 'searchable', + 'dataType' => 'varchar', + 'entity' => 'customer', + 'bind' => null + ]; + $this->source->expects($this->once()) + ->method('addFieldToSelect') + ->with('is_approved', 'left') + ->willReturnSelf(); + + $this->subject->prepareSql($this->source, $alias, $fieldInfo); + } +}