Example #1
0
 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);
 }
Example #2
0
 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;
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
 /**
  * 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);
 }