public function testAddProductNameFilter() { $collection = $this->collection->addProductNameFilter('TestProductName'); $sql = $collection->getSelect()->__toString(); $sql = trim(preg_replace('/\\s+/', ' ', $sql)); $this->assertEquals(trim(preg_replace('/\\s+/', ' ', $this->sql)), $sql); }
public function testAddProductNameFilter() { $entityMetadata = $this->getMockBuilder('Magento\\Framework\\EntityManager\\EntityMetadata')->disableOriginalConstructor()->getMock(); $entityMetadata->expects($this->once())->method('getLinkField')->willReturn('entity_id'); $this->metadataPool->expects($this->once())->method('getMetadata')->with(ProductInterface::class)->willReturn($entityMetadata); $collection = $this->collection->addProductNameFilter('TestProductName'); $sql = $collection->getSelect()->__toString(); $sql = trim(preg_replace('/\\s+/', ' ', $sql)); $this->assertEquals(trim(preg_replace('/\\s+/', ' ', $this->sql)), $sql); }
/** * Set order to result * * @param string $attribute * @param string $dir * @return $this */ public function setOrder($attribute, $dir = self::SORT_ORDER_DESC) { if ($attribute == 'wishlists') { $this->getSelect()->order($attribute . ' ' . $dir); } else { parent::setOrder($attribute, $dir); } return $this; }
/** * Add wishlist conditions to collection * * @param \Magento\Wishlist\Model\ResourceModel\Item\Collection $collection * @return $this */ protected function _prepareCollection($collection) { $collection->setInStockFilter(true)->setOrder('added_at', 'ASC'); return $this; }
/** * Add field filter to collection * * @param string|array $field * @param null|string|array $condition * @see self::_getConditionSql for $condition * @return \Magento\Framework\Data\Collection\AbstractDb */ public function addFieldToFilter($field, $condition = null) { switch ($field) { case 'product_name': $value = (string) $condition['like']; $value = trim(trim($value, "'"), "%"); return $this->addProductNameFilter($value); case 'store_id': if (isset($condition['eq'])) { return $this->addStoreFilter($condition); } break; case 'days_in_wishlist': if (!isset($condition['datetime'])) { return $this->addDaysFilter($condition); } } return parent::addFieldToFilter($field, $condition); }