Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
FilterModifierTest.php
Go to the documentation of this file.
1 <?php
7 
9 
13 class FilterModifierTest extends \PHPUnit\Framework\TestCase
14 {
18  protected $request;
19 
23  protected $dataProvider;
24 
28  protected $filterBuilder;
29 
33  protected $unit;
34 
38  protected function setUp()
39  {
40  $this->request = $this->getMockForAbstractClass(\Magento\Framework\App\RequestInterface::class);
41  $this->dataProvider = $this->getMockForAbstractClass(
42  \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::class
43  );
44  $this->filterBuilder = $this->createMock(\Magento\Framework\Api\FilterBuilder::class);
45  $this->unit = (new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this))
46  ->getObject(
47  \Magento\Ui\Component\Filters\FilterModifier::class,
48  [
49  'request' => $this->request,
50  'filterBuilder' => $this->filterBuilder,
51  ]
52  );
53  }
54 
58  public function testNotApplyFilterModifier()
59  {
60  $this->request->expects($this->once())->method('getParam')
61  ->with(\Magento\Ui\Component\Filters\FilterModifier::FILTER_MODIFIER)
62  ->willReturn([]);
63  $this->dataProvider->expects($this->never())->method('addFilter');
64  $this->unit->applyFilterModifier($this->dataProvider, 'test');
65  }
66 
72  {
73  $this->request->expects($this->once())->method('getParam')
74  ->with(\Magento\Ui\Component\Filters\FilterModifier::FILTER_MODIFIER)
75  ->willReturn([
76  'filter' => [
77  'condition_type' => 'not_allowed'
78  ]
79  ]);
80  $this->dataProvider->expects($this->never())->method('addFilter');
81  $this->unit->applyFilterModifier($this->dataProvider, 'test');
82  }
83 
92  public function testApplyFilterModifierWith($filterModifier, $filterName, $conditionType, $value)
93  {
94  $filter = $this->createMock(\Magento\Framework\Api\Filter::class);
95 
96  $this->request->expects($this->once())->method('getParam')
97  ->with(\Magento\Ui\Component\Filters\FilterModifier::FILTER_MODIFIER)
98  ->willReturn($filterModifier);
99  $this->filterBuilder->expects($this->once())->method('setConditionType')->with($conditionType)
100  ->willReturnSelf();
101  $this->filterBuilder->expects($this->once())->method('setField')->with($filterName)->willReturnSelf();
102  $this->filterBuilder->expects($this->once())->method('setValue')->with($value)->willReturnSelf();
103  $this->filterBuilder->expects($this->once())->method('create')->with()->willReturn($filter);
104  $this->dataProvider->expects($this->once())->method('addFilter')->with($filter);
105 
106  $this->unit->applyFilterModifier($this->dataProvider, $filterName);
107  }
108 
113  {
114  return [
115  [
116  [
117  'filter1' => ['condition_type' => 'eq', 'value' => '5',]
118  ],
119  'filter1',
120  'eq',
121  '5'
122  ],
123  [
124  [
125  'filter2' => ['condition_type' => 'notnull']
126  ],
127  'filter2',
128  'notnull',
129  null
130  ],
131  ];
132  }
133 }
testApplyFilterModifierWith($filterModifier, $filterName, $conditionType, $value)
$value
Definition: gender.phtml:16