MapperTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Search\Request;
  7. class MapperTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Framework\Search\Request\Mapper
  11. */
  12. protected $mapper;
  13. public function setUp()
  14. {
  15. $config = include __DIR__ . '/../_files/search_request_config.php';
  16. $request = reset($config);
  17. /** @var \Magento\Framework\Search\Request\Mapper $mapper */
  18. $this->mapper = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
  19. ->create(
  20. \Magento\Framework\Search\Request\Mapper::class,
  21. [
  22. 'queries' => $request['queries'],
  23. 'rootQueryName' => 'suggested_search_container',
  24. 'filters' => $request['filters'],
  25. 'aggregations' => $request['aggregations'],
  26. ]
  27. );
  28. }
  29. public function testGet()
  30. {
  31. $this->assertInstanceOf(
  32. \Magento\Framework\Search\Request\QueryInterface::class,
  33. $this->mapper->getRootQuery()
  34. );
  35. }
  36. public function testGetBuckets()
  37. {
  38. $buckets = $this->mapper->getBuckets();
  39. $this->assertEquals(2, count($buckets));
  40. $this->assertInstanceOf(\Magento\Framework\Search\Request\Aggregation\TermBucket::class, $buckets[0]);
  41. $this->assertEquals('category_bucket', $buckets[0]->getName());
  42. $this->assertEquals('category', $buckets[0]->getField());
  43. $this->assertEquals(\Magento\Framework\Search\Request\BucketInterface::TYPE_TERM, $buckets[0]->getType());
  44. $metrics = $buckets[0]->getMetrics();
  45. $this->assertInstanceOf(\Magento\Framework\Search\Request\Aggregation\Metric::class, $metrics[0]);
  46. $this->assertInstanceOf(\Magento\Framework\Search\Request\Aggregation\RangeBucket::class, $buckets[1]);
  47. $this->assertEquals('price_bucket', $buckets[1]->getName());
  48. $this->assertEquals('price', $buckets[1]->getField());
  49. $this->assertEquals(\Magento\Framework\Search\Request\BucketInterface::TYPE_RANGE, $buckets[1]->getType());
  50. $metrics = $buckets[1]->getMetrics();
  51. $ranges = $buckets[1]->getRanges();
  52. $this->assertInstanceOf(\Magento\Framework\Search\Request\Aggregation\Metric::class, $metrics[0]);
  53. $this->assertInstanceOf(\Magento\Framework\Search\Request\Aggregation\Range::class, $ranges[0]);
  54. }
  55. }