TermTest.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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\Aggregation\Builder;
  7. use Magento\Elasticsearch\SearchAdapter\Aggregation\Builder\Term;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  9. class TermTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var Term
  13. */
  14. private $model;
  15. /**
  16. * @var \Magento\Framework\Search\Request\BucketInterface|\PHPUnit_Framework_MockObject_MockObject
  17. */
  18. protected $requestBuckedInterface;
  19. /**
  20. * @var \Magento\Framework\Search\Dynamic\DataProviderInterface|\PHPUnit_Framework_MockObject_MockObject
  21. */
  22. protected $dataProviderContainer;
  23. /**
  24. * @var \Magento\Framework\Search\Request\Aggregation\TermBucket|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. protected $bucket;
  27. /**
  28. * Set up test environment.
  29. *
  30. * @return void
  31. */
  32. protected function setUp()
  33. {
  34. $this->requestBuckedInterface = $this->getMockBuilder(\Magento\Framework\Search\Request\BucketInterface::class)
  35. ->disableOriginalConstructor()
  36. ->getMock();
  37. $this->dataProviderContainer = $this->getMockBuilder(
  38. \Magento\Framework\Search\Dynamic\DataProviderInterface::class
  39. )
  40. ->disableOriginalConstructor()
  41. ->getMock();
  42. $this->bucket = $this->getMockBuilder(\Magento\Framework\Search\Request\Aggregation\TermBucket::class)
  43. ->setMethods(['getName'])
  44. ->disableOriginalConstructor()
  45. ->getMock();
  46. $objectManagerHelper = new ObjectManagerHelper($this);
  47. $this->model = $objectManagerHelper->getObject(
  48. \Magento\Elasticsearch\SearchAdapter\Aggregation\Builder\Term::class,
  49. []
  50. );
  51. }
  52. /**
  53. * Test build() method
  54. */
  55. public function testBuild()
  56. {
  57. $dimensions = [
  58. 'scope' => [
  59. 'name' => 'scope',
  60. 'value' => 1,
  61. ],
  62. ];
  63. $queryResult = [
  64. 'took' => 1,
  65. 'timed_out' => false,
  66. '_shards' => [],
  67. 'hits' => [
  68. 'total' => 1,
  69. 'max_score' => 1,
  70. 'hits' => [],
  71. ],
  72. 'aggregations' => [
  73. 'category_bucket' => [
  74. 'buckets' => [
  75. [
  76. 'key' => '23',
  77. 'doc_count' => 12,
  78. ],
  79. ],
  80. ],
  81. ],
  82. ];
  83. $this->bucket->expects($this->once())
  84. ->method('getName')
  85. ->willReturn('category_bucket');
  86. $this->model->build(
  87. $this->bucket,
  88. $dimensions,
  89. $queryResult,
  90. $this->dataProviderContainer
  91. );
  92. }
  93. }