123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Search\Test\Unit\Request;
- use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
- class BinderTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \Magento\Framework\Search\Request\Binder
- */
- private $binder;
- /**
- * SetUP method
- */
- protected function setUp()
- {
- $helper = new ObjectManager($this);
- $this->binder = $helper->getObject(\Magento\Framework\Search\Request\Binder::class);
- }
- /**
- * Test for method "build"
- */
- public function testBind()
- {
- $requestData = [
- 'dimensions' => ['scope' => ['value' => '$sss$']],
- 'queries' => [
- 'query' => ['value' => '$query$'],
- 'empty_query' => ['value' => '$empty_query$'],
- 'space_query' => ['value' => '$space_query$'],
- 'zero_value_query' => ['name' => 'zero_value', 'type' => 'filteredQuery'],
- ],
- 'filters' => [
- 'filter' => ['from' => '$from$', 'to' => '$to$', 'value' => '$filter$'],
- 'zero_value_filter' => [
- 'type' => 'termFilter',
- 'name' => 'zero_value',
- 'field' => 'zero_value',
- 'value' => '$zero_value$',
- ],
- ],
- 'aggregations' => ['price' => ['method' => '$method$']],
- 'from' => 0,
- 'size' => 15,
- ];
- $bindData = [
- 'dimensions' => ['scope' => 'default'],
- 'placeholder' => [
- '$query$' => 'match_query',
- '$empty_query$' => ' ',
- '$space_query$' => ' value',
- '$from$' => 'filter_from',
- '$to$' => 'filter_to',
- '$filter$' => 'filter_value',
- '$method$' => 'filter_method',
- '$zero_value$' => '0',
- ],
- 'from' => 1,
- 'size' => 10,
- ];
- $expectedResult = [
- 'dimensions' => ['scope' => ['value' => 'default']],
- 'queries' => [
- 'query' => ['value' => 'match_query', 'is_bind' => true],
- 'empty_query' => ['value' => '$empty_query$'],
- 'space_query' => ['value' => 'value', 'is_bind' => true],
- 'zero_value_query' => ['name' => 'zero_value', 'type' => 'filteredQuery'],
- ],
- 'filters' => [
- 'filter' => [
- 'from' => 'filter_from',
- 'to' => 'filter_to',
- 'value' => 'filter_value',
- 'is_bind' => true
- ],
- 'zero_value_filter' => [
- 'type' => 'termFilter',
- 'name' => 'zero_value',
- 'field' => 'zero_value',
- 'value' => '0',
- 'is_bind' => true,
- ]
- ],
- 'aggregations' => ['price' => ['method' => 'filter_method', 'is_bind' => true]],
- 'from' => 1,
- 'size' => 10,
- ];
- $result = $this->binder->bind($requestData, $bindData);
- $this->assertEquals($expectedResult, $result);
- }
- }
|