/**
  * @return \PHPUnit_Framework_MockObject_MockObject
  */
 protected function getCriteriaBuilder()
 {
     $criteriaBuilder = $this->getMockBuilder('Magento\\Framework\\Api\\Search\\SearchCriteriaBuilder')->setMethods(['addFilter', 'create', 'setRequestName'])->disableOriginalConstructor()->getMock();
     $this->filter = new \Magento\Framework\Api\Filter();
     $this->filter->setField('price_dynamic_algorithm');
     $this->filter->setValue(1);
     $criteriaBuilder->expects($this->once())->method('addFilter')->with($this->filter);
     $criteria = $this->getMock('Magento\\Framework\\Api\\Search\\SearchCriteria', [], [], '', false);
     $criteriaBuilder->expects($this->once())->method('create')->willReturn($criteria);
     $criteria->expects($this->once())->method('setRequestName')->withConsecutive(['catalog_view_container'])->willThrowException(new \Exception('setRequestName', 333));
     return $criteriaBuilder;
 }
 public function testApply()
 {
     $filter = new Filter();
     $filter->setValue('test');
     $this->collectionAbstractDbMock->expects($this->any())->method('getMainTable')->willReturn('testTable');
     $this->collectionAbstractDbMock->expects($this->once())->method('getConnection')->willReturn($this->connectionMock);
     $this->connectionMock->expects($this->any())->method('select')->willReturn($this->selectMock);
     $this->connectionMock->expects($this->once())->method('getIndexList')->willReturn([['INDEX_TYPE' => 'FULLTEXT', 'COLUMNS_LIST' => ['col1', 'col2']]]);
     $this->selectMock->expects($this->once())->method('getPart')->willReturn([]);
     $this->selectMock->expects($this->once())->method('where')->willReturn(null);
     $this->collectionAbstractDbMock->expects($this->exactly(2))->method('getSelect')->willReturn($this->selectMock);
     $this->fulltextFilter->apply($this->collectionAbstractDbMock, $filter);
 }