SearchResponseBuilderTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Search\Test\Unit;
  7. use Magento\Framework\Api\Search\SearchResultInterface;
  8. use Magento\Framework\Search\Response\QueryResponse;
  9. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  10. class SearchResponseBuilderTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Framework\Search\SearchResponseBuilder
  14. */
  15. private $model;
  16. /**
  17. * @var \Magento\Framework\Api\Search\SearchResultFactory|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. private $searchResultFactory;
  20. /**
  21. * @var \Magento\Framework\Api\Search\DocumentFactory|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. private $documentFactory;
  24. protected function setUp()
  25. {
  26. $this->searchResultFactory = $this->getMockBuilder(\Magento\Framework\Api\Search\SearchResultFactory::class)
  27. ->disableOriginalConstructor()
  28. ->getMock();
  29. $this->documentFactory = $this->getMockBuilder(\Magento\Framework\Api\Search\DocumentFactory::class)
  30. ->disableOriginalConstructor()
  31. ->getMock();
  32. $this->model = (new ObjectManager($this))->getObject(
  33. \Magento\Framework\Search\SearchResponseBuilder::class,
  34. ['searchResultFactory' => $this->searchResultFactory]
  35. );
  36. }
  37. public function testBuild()
  38. {
  39. $aggregations = ['aggregations'];
  40. $document = $this->getMockBuilder(\Magento\Framework\Api\Search\DocumentInterface::class)
  41. ->disableOriginalConstructor()
  42. ->getMockForAbstractClass();
  43. /** @var SearchResultInterface|\PHPUnit_Framework_MockObject_MockObject $searchResult */
  44. $searchResult = $this->getMockBuilder(\Magento\Framework\Api\Search\SearchResultInterface::class)
  45. ->disableOriginalConstructor()
  46. ->getMockForAbstractClass();
  47. $searchResult->expects($this->once())
  48. ->method('setItems')
  49. ->with([$document]);
  50. $searchResult->expects($this->once())
  51. ->method('setAggregations')
  52. ->with($aggregations);
  53. $this->searchResultFactory->expects($this->once())
  54. ->method('create')
  55. ->willReturn($searchResult);
  56. /** @var QueryResponse|\PHPUnit_Framework_MockObject_MockObject $response */
  57. $response = $this->getMockBuilder(\Magento\Framework\Search\Response\QueryResponse::class)
  58. ->setMethods(['getIterator', 'getAggregations'])
  59. ->disableOriginalConstructor()
  60. ->getMockForAbstractClass();
  61. $response->expects($this->any())
  62. ->method('getIterator')
  63. ->willReturn(new \ArrayIterator([$document]));
  64. $response->expects($this->once())
  65. ->method('getAggregations')
  66. ->willReturn($aggregations);
  67. $result = $this->model->build($response);
  68. $this->assertInstanceOf(\Magento\Framework\Api\Search\SearchResultInterface::class, $result);
  69. }
  70. }