/** * @covers \Magento\Eav\Model\Entity\Attribute\Source\Boolean::addValueSortToCollection * * @dataProvider addValueSortToCollectionDataProvider * @param string $direction * @param bool $isScopeGlobal * @param array $expectedJoinCondition * @param string $expectedOrder */ public function testAddValueSortToCollection($direction, $isScopeGlobal, $expectedJoinCondition, $expectedOrder) { $attributeMock = $this->getAttributeMock(); $attributeMock->expects($this->any())->method('isScopeGlobal')->will($this->returnValue($isScopeGlobal)); $selectMock = $this->getMock('\\Magento\\Framework\\DB\\Select', [], [], '', false); $collectionMock = $this->getCollectionMock(); $collectionMock->expects($this->any())->method('getSelect')->will($this->returnValue($selectMock)); foreach ($expectedJoinCondition as $step => $data) { $selectMock->expects($this->at($step))->method('joinLeft')->with($data['requisites'], $data['condition'], [])->will($this->returnSelf()); } $selectMock->expects($this->once())->method('order')->with($expectedOrder); $this->_model->setAttribute($attributeMock); $this->_model->addValueSortToCollection($collectionMock, $direction); }
/** * @covers \Magento\Eav\Model\Entity\Attribute\Source\Boolean::addValueSortToCollection * * @dataProvider addValueSortToCollectionDataProvider * @param string $direction * @param bool $isScopeGlobal * @param array $expectedJoinCondition * @param string $expectedOrder */ public function testAddValueSortToCollection($direction, $isScopeGlobal, $expectedJoinCondition, $expectedOrder) { $attributeMock = $this->getAttributeMock(); $attributeMock->expects($this->any())->method('isScopeGlobal')->will($this->returnValue($isScopeGlobal)); $entity = $this->getMockBuilder(AbstractEntity::class)->disableOriginalConstructor()->setMethods(['getLinkField'])->getMockForAbstractClass(); $entity->expects($this->once())->method('getLinkField')->willReturn('entity_id'); $attributeMock->expects($this->once())->method('getEntity')->willReturn($entity); $selectMock = $this->getMock('\\Magento\\Framework\\DB\\Select', [], [], '', false); $collectionMock = $this->getCollectionMock(); $collectionMock->expects($this->any())->method('getSelect')->will($this->returnValue($selectMock)); foreach ($expectedJoinCondition as $step => $data) { $selectMock->expects($this->at($step))->method('joinLeft')->with($data['requisites'], $data['condition'], [])->will($this->returnSelf()); } $selectMock->expects($this->once())->method('order')->with($expectedOrder); $this->_model->setAttribute($attributeMock); $this->_model->addValueSortToCollection($collectionMock, $direction); }