/** * 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)); }