/**
  * Lists credit memos that match specified search criteria.
  *
  * @param \Magento\Framework\Api\SearchCriteria $searchCriteria The search criteria.
  * @return \Magento\Sales\Api\Data\CreditmemoSearchResultInterface Credit memo search result interface.
  */
 public function getList(\Magento\Framework\Api\SearchCriteria $searchCriteria)
 {
     /** @var \Magento\Sales\Api\Data\CreditmemoSearchResultInterface $searchResult */
     $searchResult = $this->searchResultFactory->create();
     foreach ($searchCriteria->getFilterGroups() as $filterGroup) {
         foreach ($filterGroup->getFilters() as $filter) {
             $condition = $filter->getConditionType() ? $filter->getConditionType() : 'eq';
             $searchResult->addFieldToFilter($filter->getField(), [$condition => $filter->getValue()]);
         }
     }
     $searchResult->setCurPage($searchCriteria->getCurrentPage());
     $searchResult->setPageSize($searchCriteria->getPageSize());
     return $searchResult;
 }
 public function testGetList()
 {
     $filterGroup = $this->getMockBuilder('Magento\\Framework\\Api\\Search\\FilterGroup')->disableOriginalConstructor()->getMock();
     $filterGroups = [$filterGroup];
     $field = 'test_field';
     $fieldValue = 'test_value';
     $filter = $this->getMockBuilder('Magento\\Framework\\Api\\Filter')->disableOriginalConstructor()->getMock();
     $filter->expects($this->any())->method('getConditionType')->willReturn(false);
     $filter->expects($this->any())->method('getField')->willReturn($field);
     $filter->expects($this->any())->method('getValue')->willReturn($fieldValue);
     $filterGroup->expects($this->once())->method('getFilters')->willReturn([$filter]);
     $criteria = $this->getMockBuilder('Magento\\Framework\\Api\\SearchCriteria')->disableOriginalConstructor()->getMock();
     $criteria->expects($this->once())->method('getFilterGroups')->willReturn($filterGroups);
     $collection = $this->getMockBuilder('Magento\\Sales\\Model\\ResourceModel\\Order\\Creditmemo\\Collection')->disableOriginalConstructor()->getMock();
     $collection->expects($this->once())->method('addFieldToFilter')->withAnyParameters();
     $this->searchResultFactoryMock->expects($this->once())->method('create')->willReturn($collection);
     $this->assertEquals($collection, $this->creditmemo->getList($criteria));
 }