Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getList');
     if (!$pluginInfo) {
         return parent::getList($searchCriteria);
     } else {
         return $this->___callPlugins('getList', func_get_args(), $pluginInfo);
     }
 }
 public function testGetList()
 {
     $searchCriteriaMock = $this->getMock('\\Magento\\Framework\\Api\\SearchCriteriaInterface', [], [], '', false);
     $attributeCode = 'attribute_code';
     $collectionMock = $this->getMock('\\Magento\\Catalog\\Model\\Resource\\Product\\Collection', [], [], '', false);
     $filterMock = $this->getMock('\\Magento\\Framework\\Api\\Filter', [], [], '', false);
     $searchCriteriaBuilderMock = $this->getMock('\\Magento\\Framework\\Api\\SearchCriteriaBuilder', [], [], '', false);
     $extendedSearchCriteriaMock = $this->getMock('\\Magento\\Framework\\Api\\SearchCriteria', [], [], '', false);
     $productAttributeSearchResultsMock = $this->getMockForAbstractClass('\\Magento\\Catalog\\Api\\Data\\ProductAttributeInterface', [], '', false, false, false, ['getItems']);
     $productAttributeMock = $this->getMock('\\Magento\\Catalog\\Api\\Data\\ProductAttributeInterface', [], [], '', 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\\Framework\\Object', [], [], '', false);
     $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($collectionMock);
     $this->filterBuilderMock->expects($this->any())->method('setField')->with('attribute_set_id')->will($this->returnSelf());
     $this->filterBuilderMock->expects($this->once())->method('create')->willReturn($filterMock);
     $this->filterBuilderMock->expects($this->once())->method('setValue')->with(4)->willReturn($this->filterBuilderMock);
     $this->searchCriteriaBuilderMock->expects($this->once())->method('addFilter')->with([$filterMock])->willReturn($searchCriteriaBuilderMock);
     $searchCriteriaBuilderMock->expects($this->once())->method('create')->willReturn($extendedSearchCriteriaMock);
     $this->metadataServiceMock->expects($this->once())->method('getList')->with($extendedSearchCriteriaMock)->willReturn($productAttributeSearchResultsMock);
     $productAttributeSearchResultsMock->expects($this->once())->method('getItems')->willReturn([$productAttributeMock]);
     $productAttributeMock->expects($this->once())->method('getAttributeCode')->willReturn($attributeCode);
     $collectionMock->expects($this->once())->method('addAttributeToSelect')->with($attributeCode);
     $collectionMock->expects($this->exactly(2))->method('joinAttribute')->withConsecutive(['status', 'catalog_product/status', 'entity_id', null, 'inner'], ['visibility', 'catalog_product/visibility', 'entity_id', null, 'inner']);
     $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->once())->method('getField')->willReturn('field');
     $filterGroupFilterMock->expects($this->once())->method('getValue')->willReturn('value');
     $collectionMock->expects($this->once())->method('addFieldToFilter')->with([['attribute' => 'field', 'eq' => 'value']]);
     $searchCriteriaMock->expects($this->once())->method('getSortOrders')->willReturn([$sortOrderMock]);
     $sortOrderMock->expects($this->once())->method('getField')->willReturn('field');
     $sortOrderMock->expects($this->once())->method('getDirection')->willReturn(\Magento\Framework\Api\SearchCriteriaInterface::SORT_ASC);
     $collectionMock->expects($this->once())->method('addOrder')->with('field', 'ASC');
     $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('load');
     $collectionMock->expects($this->once())->method('getItems')->willReturn([$itemsMock]);
     $collectionMock->expects($this->once())->method('getSize')->willReturn(128);
     $searchResultsMock = $this->getMock('\\Magento\\Catalog\\Api\\Data\\ProductSearchResultsInterface', [], [], '', false);
     $searchResultsMock->expects($this->once())->method('setSearchCriteria')->with($searchCriteriaMock);
     $searchResultsMock->expects($this->once())->method('setItems')->with([$itemsMock]);
     $this->searchResultsFactoryMock->expects($this->once())->method('create')->willReturn($searchResultsMock);
     $this->assertEquals($searchResultsMock, $this->model->getList($searchCriteriaMock));
 }