File tree Expand file tree Collapse file tree 3 files changed +21
-4
lines changed
Expand file tree Collapse file tree 3 files changed +21
-4
lines changed Original file line number Diff line number Diff line change @@ -14,13 +14,17 @@ class FilterBuilder implements FilterBuilderInterface
1414 /** @var FilterInterface */
1515 protected $ filter ;
1616
17- public function __construct (FilterInterface $ filter )
17+ public function __construct (FilterInterface ... $ filters )
1818 {
19- $ this ->filter = $ filter ;
19+ $ this ->filters = $ filters ;
2020 }
2121
2222 public function __invoke (): array
2323 {
24- return $ this ->filter ->getCriteria () ?? [];
24+ $ criteria = [];
25+ foreach ($ this ->filters as $ filter ) {
26+ $ criteria = array_merge ($ criteria , $ filter ->getCriteria ());
27+ }
28+ return $ criteria ;
2529 }
2630}
Original file line number Diff line number Diff line change 1313
1414interface FilterBuilderInterface
1515{
16- public function __construct (FilterInterface $ filter );
16+ public function __construct (FilterInterface ... $ filters );
1717
1818 public function __invoke (): array ;
1919}
Original file line number Diff line number Diff line change 99
1010namespace Diglin \Sylius \ApiClient \Test ;
1111
12+ use Diglin \Sylius \ApiClient \Filter \FilterBuilder ;
13+ use Diglin \Sylius \ApiClient \Routing \UriGenerator ;
1214use PHPUnit \Framework \TestCase ;
1315
1416class Filter extends TestCase
@@ -22,4 +24,15 @@ public function testFilter()
2224 $ this ->assertArrayHasKey ('criteria[date][from][date] ' , $ criteria );
2325 $ this ->assertEquals ('2021-02-04 ' , $ criteria ['criteria[date][from][date] ' ]);
2426 }
27+
28+ public function testFilterBuilder ()
29+ {
30+ $ builder = (new FilterBuilder (
31+ new \Diglin \Sylius \ApiClient \Filter \Filter ('channel ' , 1 ),
32+ new \Diglin \Sylius \ApiClient \Filter \Filter (['date ' => ['from ' => ['date ' => '2021-02-04 ' ]]])
33+ ));
34+
35+ $ criteria = $ builder ();
36+ $ this ->assertCount (2 , $ criteria );
37+ }
2538}
You can’t perform that action at this time.
0 commit comments