DocumentFactoryTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Elasticsearch\Test\Unit\SearchAdapter;
  7. use Magento\Elasticsearch\SearchAdapter\DocumentFactory;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  9. class DocumentFactoryTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var DocumentFactory|\PHPUnit_Framework_MockObject_MockObject
  13. */
  14. private $model;
  15. /**
  16. * @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
  17. */
  18. protected $objectManager;
  19. /**
  20. * @var \Magento\Elasticsearch\SearchAdapter\AggregationFactory|\PHPUnit_Framework_MockObject_MockObject
  21. */
  22. protected $aggregationFactory;
  23. /**
  24. * @var \Magento\Framework\Search\EntityMetadata|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. protected $entityMetadata;
  27. /**
  28. * Instance name
  29. *
  30. * @var string
  31. */
  32. protected $instanceName;
  33. /**
  34. * Set up test environment.
  35. *
  36. * @return void
  37. */
  38. protected function setUp()
  39. {
  40. $this->entityMetadata = $this->getMockBuilder(\Magento\Framework\Search\EntityMetadata::class)
  41. ->disableOriginalConstructor()
  42. ->getMock();
  43. $this->objectManager = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
  44. $this->instanceName = \Magento\Framework\Api\Search\Document::class;
  45. $objectManagerHelper = new ObjectManagerHelper($this);
  46. $this->model = $objectManagerHelper->getObject(
  47. \Magento\Elasticsearch\SearchAdapter\DocumentFactory::class,
  48. [
  49. 'objectManager' => $this->objectManager,
  50. 'entityMetadata' => $this->entityMetadata
  51. ]
  52. );
  53. }
  54. /**
  55. * Test Create method
  56. */
  57. public function testCreate()
  58. {
  59. $documents = [
  60. '_id' => 2,
  61. '_score' => 1.00,
  62. '_index' => 'indexName',
  63. '_type' => 'product',
  64. ];
  65. $this->entityMetadata->expects($this->once())
  66. ->method('getEntityId')
  67. ->willReturn('_id');
  68. $result = $this->model->create($documents);
  69. $this->assertInstanceOf($this->instanceName, $result);
  70. $this->assertEquals($documents['_id'], $result->getId());
  71. $this->assertEquals($documents['_score'], $result->getCustomAttribute('score')->getValue());
  72. }
  73. }