/**
  * TODO: Cover with unit tests the other methods in the repository
  * test GetList
  */
 public function testGetList()
 {
     $fieldName = 'field';
     $searchCriteriaMock = $this->getMock('Magento\\Framework\\Api\\SearchCriteria', [], [], '', false);
     $collectionMock = $this->getMock('Magento\\Sales\\Model\\ResourceModel\\Order\\Collection', [], [], '', false);
     $filterGroupMock = $this->getMock('\\Magento\\Framework\\Api\\Search\\FilterGroup', [], [], '', false);
     $filterGroupFilterMock = $this->getMock('\\Magento\\Framework\\Api\\Filter', [], [], '', false);
     $sortOrderMock = $this->getMock('\\Magento\\Framework\\Api\\SortOrder', [], [], '', false);
     $itemsMock = $this->getMock('Magento\\Sales\\Model\\Order', [], [], '', false);
     $extensionAttributes = $this->getMock('\\Magento\\Sales\\Api\\Data\\OrderExtension', ['getShippingAssignments'], [], '', false);
     $shippingAssignmentBuilder = $this->getMock('\\Magento\\Sales\\Model\\Order\\ShippingAssignmentBuilder', [], [], '', false);
     $itemsMock->expects($this->once())->method('getExtensionAttributes')->willReturn($extensionAttributes);
     $extensionAttributes->expects($this->any())->method('getShippingAssignments')->willReturn($shippingAssignmentBuilder);
     $this->searchResultFactory->expects($this->once())->method('create')->willReturn($collectionMock);
     $searchCriteriaMock->expects($this->once())->method('getFilterGroups')->willReturn([$filterGroupMock]);
     $filterGroupMock->expects($this->once())->method('getFilters')->willReturn([$filterGroupFilterMock]);
     $filterGroupFilterMock->expects($this->exactly(2))->method('getConditionType')->willReturn('eq');
     $filterGroupFilterMock->expects($this->atLeastOnce())->method('getField')->willReturn($fieldName);
     $filterGroupFilterMock->expects($this->once())->method('getValue')->willReturn('value');
     $sortOrderMock->expects($this->once())->method('getDirection');
     $searchCriteriaMock->expects($this->once())->method('getSortOrders')->willReturn([$sortOrderMock]);
     $sortOrderMock->expects($this->atLeastOnce())->method('getField')->willReturn($fieldName);
     $collectionMock->expects($this->once())->method('addFieldToFilter')->willReturn(SortOrder::SORT_ASC);
     $collectionMock->expects($this->once())->method('addOrder')->with($fieldName, 'DESC');
     $searchCriteriaMock->expects($this->once())->method('getCurrentPage')->willReturn(4);
     $collectionMock->expects($this->once())->method('setCurPage')->with(4);
     $searchCriteriaMock->expects($this->once())->method('getPageSize')->willReturn(42);
     $collectionMock->expects($this->once())->method('setPageSize')->with(42);
     $collectionMock->expects($this->once())->method('getItems')->willReturn([$itemsMock]);
     $this->assertEquals($collectionMock, $this->model->getList($searchCriteriaMock));
 }
 /**
  * Find entities by criteria
  *
  * @param \Magento\Framework\Api\SearchCriteria $searchCriteria
  * @return \Magento\Sales\Api\Data\OrderInterface[]
  */
 public function getList(\Magento\Framework\Api\SearchCriteria $searchCriteria)
 {
     //@TODO: fix search logic
     /** @var \Magento\Sales\Api\Data\OrderSearchResultInterface $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;
 }
示例#3
0
 /**
  * Find entities by criteria
  *
  * @param \Magento\Framework\Api\SearchCriteria $searchCriteria
  * @return OrderInterface[]
  */
 public function getList(\Magento\Framework\Api\SearchCriteria $searchCriteria)
 {
     /** @var \Magento\Sales\Api\Data\OrderSearchResultInterface $searchResult */
     $searchResult = $this->searchResultFactory->create();
     foreach ($searchCriteria->getFilterGroups() as $filterGroup) {
         $this->addFilterGroupToCollection($filterGroup, $searchResult);
     }
     $sortOrders = $searchCriteria->getSortOrders();
     if ($sortOrders === null) {
         $sortOrders = [];
     }
     /** @var \Magento\Framework\Api\SortOrder $sortOrder */
     foreach ($sortOrders as $sortOrder) {
         $field = $sortOrder->getField();
         $searchResult->addOrder($field, $sortOrder->getDirection() == SortOrder::SORT_ASC ? 'ASC' : 'DESC');
     }
     $searchResult->setSearchCriteria($searchCriteria);
     $searchResult->setCurPage($searchCriteria->getCurrentPage());
     $searchResult->setPageSize($searchCriteria->getPageSize());
     foreach ($searchResult->getItems() as $order) {
         $this->setShippingAssignments($order);
     }
     return $searchResult;
 }