searchResultFactory = $this->getMockBuilder(\Magento\Framework\Api\Search\SearchResultFactory::class) ->disableOriginalConstructor() ->getMock(); $this->documentFactory = $this->getMockBuilder(\Magento\Framework\Api\Search\DocumentFactory::class) ->disableOriginalConstructor() ->getMock(); $this->model = (new ObjectManager($this))->getObject( \Magento\Framework\Search\SearchResponseBuilder::class, ['searchResultFactory' => $this->searchResultFactory] ); } public function testBuild() { $aggregations = ['aggregations']; $document = $this->getMockBuilder(\Magento\Framework\Api\Search\DocumentInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); /** @var SearchResultInterface|\PHPUnit_Framework_MockObject_MockObject $searchResult */ $searchResult = $this->getMockBuilder(\Magento\Framework\Api\Search\SearchResultInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $searchResult->expects($this->once()) ->method('setItems') ->with([$document]); $searchResult->expects($this->once()) ->method('setAggregations') ->with($aggregations); $this->searchResultFactory->expects($this->once()) ->method('create') ->willReturn($searchResult); /** @var QueryResponse|\PHPUnit_Framework_MockObject_MockObject $response */ $response = $this->getMockBuilder(\Magento\Framework\Search\Response\QueryResponse::class) ->setMethods(['getIterator', 'getAggregations']) ->disableOriginalConstructor() ->getMockForAbstractClass(); $response->expects($this->any()) ->method('getIterator') ->willReturn(new \ArrayIterator([$document])); $response->expects($this->once()) ->method('getAggregations') ->willReturn($aggregations); $result = $this->model->build($response); $this->assertInstanceOf(\Magento\Framework\Api\Search\SearchResultInterface::class, $result); } }