123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Elasticsearch\Test\Unit\SearchAdapter;
- use Magento\Elasticsearch\SearchAdapter\ResponseFactory;
- use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
- class ResponseFactoryTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var ResponseFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- private $model;
- /**
- * @var \Magento\Elasticsearch\SearchAdapter\DocumentFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- private $documentFactory;
- /**
- * @var \Magento\Elasticsearch\SearchAdapter\AggregationFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- private $aggregationFactory;
- /**
- * @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- private $objectManager;
- /**
- * Set up test environment.
- *
- * @return void
- */
- protected function setUp()
- {
- $this->documentFactory = $this->getMockBuilder(\Magento\Elasticsearch\SearchAdapter\DocumentFactory::class)
- ->setMethods(['create'])
- ->disableOriginalConstructor()
- ->getMock();
- $this->aggregationFactory = $this->getMockBuilder(
- \Magento\Elasticsearch\SearchAdapter\AggregationFactory::class
- )
- ->setMethods(['create'])
- ->disableOriginalConstructor()
- ->getMock();
- $this->objectManager = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
- $objectManagerHelper = new ObjectManagerHelper($this);
- $this->model = $objectManagerHelper->getObject(
- \Magento\Elasticsearch\SearchAdapter\ResponseFactory::class,
- [
- 'objectManager' => $this->objectManager,
- 'documentFactory' => $this->documentFactory,
- 'aggregationFactory' => $this->aggregationFactory
- ]
- );
- }
- public function testCreate()
- {
- $documents = [
- ['title' => 'oneTitle', 'description' => 'oneDescription'],
- ['title' => 'twoTitle', 'description' => 'twoDescription'],
- ];
- $aggregations = [
- 'aggregation1' => [
- 'itemOne' => 10,
- 'itemTwo' => 20,
- ],
- 'aggregation2' => [
- 'itemOne' => 5,
- 'itemTwo' => 45,
- ]
- ];
- $rawResponse = ['documents' => $documents, 'aggregations' => $aggregations];
- $exceptedResponse = [
- 'documents' => [
- [
- ['name' => 'title', 'value' => 'oneTitle'],
- ['name' => 'description', 'value' => 'oneDescription'],
- ],
- [
- ['name' => 'title', 'value' => 'twoTitle'],
- ['name' => 'description', 'value' => 'twoDescription'],
- ],
- ],
- 'aggregations' => [
- 'aggregation1' => [
- 'itemOne' => 10,
- 'itemTwo' => 20
- ],
- 'aggregation2' => [
- 'itemOne' => 5,
- 'itemTwo' => 45
- ],
- ],
- ];
- $this->documentFactory->expects($this->at(0))->method('create')
- ->with($this->equalTo($documents[0]))
- ->will($this->returnValue('document1'));
- $this->documentFactory->expects($this->at(1))->method('create')
- ->with($documents[1])
- ->will($this->returnValue('document2'));
- $this->aggregationFactory->expects($this->at(0))->method('create')
- ->with($this->equalTo($exceptedResponse['aggregations']))
- ->will($this->returnValue('aggregationsData'));
- $this->objectManager->expects($this->once())->method('create')
- ->with(
- $this->equalTo(\Magento\Framework\Search\Response\QueryResponse::class),
- $this->equalTo(['documents' => ['document1', 'document2'], 'aggregations' => 'aggregationsData'])
- )
- ->will($this->returnValue('QueryResponseObject'));
- $result = $this->model->create($rawResponse);
- $this->assertEquals('QueryResponseObject', $result);
- }
- }
|