Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
BinderTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class BinderTest extends \PHPUnit\Framework\TestCase
11 {
15  private $binder;
16 
20  protected function setUp()
21  {
22  $helper = new ObjectManager($this);
23 
24  $this->binder = $helper->getObject(\Magento\Framework\Search\Request\Binder::class);
25  }
26 
30  public function testBind()
31  {
32  $requestData = [
33  'dimensions' => ['scope' => ['value' => '$sss$']],
34  'queries' => [
35  'query' => ['value' => '$query$'],
36  'empty_query' => ['value' => '$empty_query$'],
37  'space_query' => ['value' => '$space_query$'],
38  'zero_value_query' => ['name' => 'zero_value', 'type' => 'filteredQuery'],
39  ],
40  'filters' => [
41  'filter' => ['from' => '$from$', 'to' => '$to$', 'value' => '$filter$'],
42  'zero_value_filter' => [
43  'type' => 'termFilter',
44  'name' => 'zero_value',
45  'field' => 'zero_value',
46  'value' => '$zero_value$',
47  ],
48  ],
49  'aggregations' => ['price' => ['method' => '$method$']],
50  'from' => 0,
51  'size' => 15,
52  ];
53  $bindData = [
54  'dimensions' => ['scope' => 'default'],
55  'placeholder' => [
56  '$query$' => 'match_query',
57  '$empty_query$' => ' ',
58  '$space_query$' => ' value',
59  '$from$' => 'filter_from',
60  '$to$' => 'filter_to',
61  '$filter$' => 'filter_value',
62  '$method$' => 'filter_method',
63  '$zero_value$' => '0',
64  ],
65  'from' => 1,
66  'size' => 10,
67  ];
68  $expectedResult = [
69  'dimensions' => ['scope' => ['value' => 'default']],
70  'queries' => [
71  'query' => ['value' => 'match_query', 'is_bind' => true],
72  'empty_query' => ['value' => '$empty_query$'],
73  'space_query' => ['value' => 'value', 'is_bind' => true],
74  'zero_value_query' => ['name' => 'zero_value', 'type' => 'filteredQuery'],
75  ],
76  'filters' => [
77  'filter' => [
78  'from' => 'filter_from',
79  'to' => 'filter_to',
80  'value' => 'filter_value',
81  'is_bind' => true
82  ],
83  'zero_value_filter' => [
84  'type' => 'termFilter',
85  'name' => 'zero_value',
86  'field' => 'zero_value',
87  'value' => '0',
88  'is_bind' => true,
89  ]
90  ],
91  'aggregations' => ['price' => ['method' => 'filter_method', 'is_bind' => true]],
92  'from' => 1,
93  'size' => 10,
94  ];
95 
96  $result = $this->binder->bind($requestData, $bindData);
97 
98  $this->assertEquals($expectedResult, $result);
99  }
100 }
$helper
Definition: iframe.phtml:13